Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

254
Vistas
C# Simplifica la condición de verificación nula

Cómo simplificar la verificación nula

 public class MyEmployee { public string FirstName; public string LastName; public string Age; public string Phone; public string Gender; }

He implementado la siguiente verificación de condición nula

 public async Task<bool> ValidateClient(MyEmployee Client) { **if(Client.FirstName == null ||Client.LastName==null ||Client.Age== null ||Client.Gender ==null||Client.Phone==null)** { throw new Argumentexception("Employee details to be provided") } }

Estoy validando todas las propiedades de la clase Empleado con una condición de verificación nula, ¿se puede simplificar esto en C#?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Dado que está utilizando el núcleo de asp.net, tendrá la opción de validar su modelo decorando las propiedades:

 public class MyEmployee { [Required] public string FirstName; [Required] public string LastName; [Required] public string Age; [Required] public string Phone; [Required] public string Gender; }

si tiene eso, puede validar el modelo desde dentro de una llamada de acción HTTP.

 public async Task<IActionResult> OnPostAsync(MyEmployee model) { if (!ModelState.IsValid) { return BadRequest(); } await yourUpdate(); return Ok(); }

Nota: esto solo funciona cuando usa los enlazadores de modelos, que están habilitados de manera predeterminada en las acciones de MVC y API.

Hay varios atributos de validación disponibles. Agregar, por ejemplo , StringLength le da la opción de validar también para una longitud> 0.

También hay disponibles varias opciones predeterminadas y de expresiones regulares.

Pone la validación cerca de su modelo y lo deja con un método ActionResult agradable y limpio.

Consulte también los documentos de Microsoft

Más atributos incorporados:

Atributos incorporados

Estos son algunos de los atributos de validación incorporados:

  • [ValidateNever]: indica que una propiedad o parámetro debe excluirse de la validación.
  • [CreditCard]: Valida que la propiedad tenga formato de tarjeta de crédito. Requiere métodos adicionales de validación de jQuery.
  • [Comparar]: valida que dos propiedades en un modelo coincidan.
  • [EmailAddress]: Valida que la propiedad tenga formato de correo electrónico.
  • [Teléfono]: Valida que la propiedad tenga formato de número de teléfono.
  • [Rango]: valida que el valor de la propiedad se encuentre dentro de un rango especificado.
  • [RegularExpression]: valida que el valor de la propiedad coincida con una expresión regular especificada.
  • [Obligatorio]: Valida que el campo no sea nulo. Consulte el atributo [Obligatorio] para obtener detalles sobre el comportamiento de este atributo.
  • [StringLength]: valida que el valor de una propiedad de cadena no supere un límite de longitud especificado.
  • [Url]: Valida que la propiedad tenga formato de URL.
  • [Remoto]: valida la entrada en el cliente llamando a un método de acción en el servidor. Consulte el atributo [Remoto] para obtener detalles sobre el comportamiento de este atributo.

Hay toneladas de estos, e incluso puedes construirlos tú mismo también.

over 4 years ago · Santiago Trujillo Denunciar

0

Con Linq puedes separar los datos de la operación

 if(new[] { Client.FirstName, Client.LastName, ..., Client.Phone } .Any(field => field is null))
  • Primero, define una colección de string enumerando todas las propiedades de cadena de su DTO
  • Luego realiza una verificación nula simple contra la colección anterior para cada elemento

ACTUALIZACIÓN # 1 : Comprobación de cadena vacía también

 if(new[] { Client.FirstName, Client.LastName, ..., Client.Phone } .Any(string.IsNullOrEmpty))
  • Para probar contra una cadena nula o vacía, puede utilizar el método estático IsNullOrEmpty de la string .
  • Si también desea probar contra espacios en blanco, entonces prefiera string.IsNullOrWhitespace
  • El Any anterior es una forma abreviada de .Any(field => string.IsNullOrEmpty(field))
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda