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

160
Visualizações
¿Por qué el operador ternario y la declaración if devuelven resultados diferentes?

En el siguiente ejemplo, estoy devolviendo un DateTimeOffset? utilizando el valor default

 var a = ConvertToDateTimeOffsetA(null); // 1/1/0001 12:00:00 AM +00:00 var b = ConvertToDateTimeOffsetB(null); // null private static DateTimeOffset? ConvertToDateTimeOffsetA(DateTime? date) { return date != null ? new DateTimeOffset(date.Value, TimeSpan.Zero) : default; } private static DateTimeOffset? ConvertToDateTimeOffsetB(DateTime? date) { if (date != null) return new DateTimeOffset(date.Value, TimeSpan.Zero); return default; }

¿Por qué hay una diferencia entre la salida devuelta en el ternario en comparación con la declaración if?

Supongo que el ternario primero obliga al tipo a DateTimeOffset y luego en línea se convierte de nuevo a Nullable<DateTimeOffset> , pero no estoy muy seguro de por qué.

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

0

En la versión ternaria, está interpretando su default como default(DateTimeOffset) , el otro tipo de expresión de salida en el condicional. Entonces está interpretando el ternario en su conjunto como anulable, que nunca será nulo.

En el segundo caso, su devolución utiliza default(DateTimeOffset?) , del tipo de devolución declarado.

En este caso, es posible que desee usar un tipo explícito en la expresión default , o simplemente use la segunda forma y agregue un comentario (e idealmente una prueba unitaria), para que nadie lo "arregle" en el futuro.

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