Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

259
Visualizações
¿Cómo verificar si los parámetros son nulos cuando se usan constructores de registros posicionales y/o propiedades de inicio?

Me gustaría verificar que no se asignen parámetros nulos a los campos de registro y permitir que las propiedades tengan comentarios. Descubrí que el siguiente arreglo es el truco para los comentarios, pero me faltan ideas para verificar los parámetros nulos sin convertir este registro en una clase.

Entonces, una pregunta: ¿Es posible verificar durante el tiempo de ejecución que no se asignarán valores nulos a los campos de registro? Si es así, ¿cómo podría uno hacerlo mientras todavía usa registros?

 public record Test(string TestString) { /// <summary> /// This is one way to get a comment on record properties. Are there others? /// </summary> public string TestString { get; init; } = TestString; }

El código también es esencial aquí .

Esta es una adición, pero tal vez ayude con la respuesta aceptada y el comentario de un código diferente.

Fue porque el código en esencia hizo una verificación nula como

 public record Test(string TestString) { /// <summary> /// This is one way to get a comment on record properties. Are there others? /// </summary> public string TestString { get; init; } = TestString ?? throw new ArgumentNullException(); }

Por una razón u otra, no incluí esta reflexión en la pregunta original si tal vez haya un camino más corto. :)

<editar: La ArgumentNullException.ThrowIfNull(obj) de .NET 6 podría ser útil aquí (o ThrowHelper).

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tiene que manejar cheques durante la asignación en línea, como ya descubrió en su esencia.

Una posibilidad es llamar a un método de extensión para envolver cualquier comportamiento.

 public record Test(string TestString) { /// <summary> /// This is one way to get a comment on record properties. Are there others? /// </summary> public string TestString { get; init; } = ValidationExtensions.Validate(TestString); } public static class ValidationExtensions { public static string Validate(string input) { if (string.IsNullOrEmpty(input)) throw new NullReferenceException(); return input; } }

Esto arrojará correctamente durante la inicialización del registro:

 var x = new Test(null);
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda