valores valor validar tipo tienen tener que puede propiedad objeto método los llamar implícitamente fecha este debe datos convertir con bool acepta c# linq-to-sql

valor - string nullable c#



Linq2Sql: ¿HasValue y!=Null funcionan igual para los tipos anulables? (1)

¿Hay alguna razón por la que debería elegir uno de estos sobre el otro? ¿O realmente no importa?

var a = data.Cars.Where(ø => ø.LicensePlate != null); var b = data.Cars.Where(ø => ø.LicensePlate.HasValue);

He usado != null antes, pero comencé a pensar que quizás debería cambiar, ya que HasValue tipo de lee mejor. ¿Qué piensan ustedes? ¿Hay alguna diferencia en absoluto? ¿Aparte de un personaje extra? Cualquier diferencia de rendimiento? Diferencias Sql?


No, ambas declaraciones son las mismas y debe elegir la que le resulte más legible.

Algo interesante a tener en cuenta es que el compilador reemplazará null comparaciones null en un Nullable<T> con una llamada a HasValue . En otras palabras, esto:

class Program { static void Main() { int? i = 0; Console.WriteLine(i != null); Console.WriteLine(i.HasValue); } }

se compila a esto:

private static void Main() { int? i = 0; Console.WriteLine(i.HasValue); Console.WriteLine(i.HasValue); }