Validar si un integer tiene un valor nulo

publicado por: Anonymous

Trabajo con C#, Visual Studio 2019

Tengo un método de filtros condicionales tengo un problema uno de los parámetros recibe un valor int si no he puesto un valor debo mandarle un nulo, pero los tipos int no admiten nulos por lo que se trabaja con HasValue y Value pero no puedo implementarlo.

var filter = new CriteriaOrdenVenta()
        {
            ClienteId = string.IsNullOrEmpty(txtClienteId.Text) ? 0 : Convert.ToInt32(txtClienteId.Text),
            Codigo = txtCodigo.Text,
            FechaEmision = chkFechaEmision.Checked ? (DateTime?)dtpFechaEmision.Value : null,
            FechaCaducidad = chkFechaCaducidad.Checked ? (DateTime?)dtpFechaCaducidad.Value : null,
        };

¿Como debo implementar correctamente en esta linea de código?

ClienteId = string.IsNullOrEmpty(txtClienteId.Text) ? 0 : Convert.ToInt32(txtClienteId.Text),

Clase Criteria

public class CriteriaOrdenVenta
{
    public int? ClienteId { get; set; }
    public string Codigo { get; set; }
    public DateTime? FechaEmision { get; set; }
    public DateTime? FechaCaducidad { get; set; }
}

solución

Creo que lo que buscas es esto:

ClienteId = string.IsNullOrEmpty(txtClienteId.Text) ? (int ?)null : Convert.ToInt32(txtClienteId.Text);

Tan sólo que hay que tener cuidado porque si el texto no viene validado como numérico podría lanzar una excepción al intentar convertirlo.

Un saludo.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *