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

252
Visualizações
¿Cómo se supone que los atributos opcionales y las referencias anulables funcionan juntas?

Soy un gran admirador de las referencias anulables de C# y las habilitamos en todos nuestros nuevos proyectos. Recientemente, estaba revisando un PR de un compañero de trabajo y descubrí que el atributo [Opcional] se usaba junto al parámetro de referencia sin especificar un valor predeterminado. Esto significaría que estamos rompiendo la "restricción de referencia anulable" ya que el valor predeterminado para el argumento de la función sería nulo, aunque el argumento no esté marcado como anulable. Por favor, vea el código de ejemplo a continuación:

 class Program { internal class Data { internal int Count { get; set; } = 3; } static void Main(string[] args) { BadUse(); GoodUse(); } static void BadUse([Optional] Data data) => Console.WriteLine($"Data: ${data.Count}"); static void BadUse2([Optional, DefaultParameterValue(null)] Data data) => Console.WriteLine($"Data: ${data.Count}"); static void GoodUse(Data? data = null) => Console.WriteLine($"Data: ${data?.Count}"); }

Como puede ver, el método BadUse anterior es incorrecto y provocará una excepción de referencia nula sin ninguna advertencia ni error de compilación. Naturalmente, usamos el patrón de argumento opcional más legible como en GoodUse . Me pregunto si esto es un error en el compilador de C# o me falta algo aquí. Esperaría ver un error de compilación o al menos alguna advertencia. Tenga en cuenta que cuando se usa el atributo DefaultParameterValue en BadUse2 , obtenemos la esperada "Desreferencia CS8602 de una referencia posiblemente nula".

over 4 years ago · Santiago Trujillo
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