¿Cuál es la diferencia entre Nullable<T>.HasValue o Nullable<T> != null?

Resuelto lc. asked hace 15 años • 5 respuestas

Siempre lo usé Nullable<>.HasValueporque me gustaba la semántica. Sin embargo, recientemente estuve trabajando en el código base existente de otra persona, donde lo usaron Nullable<> != nullexclusivamente.

¿Hay alguna razón para utilizar uno sobre el otro o es pura preferencia?

  1. int? a;
    if (a.HasValue)
        // ...
    

vs.

  1. int? b;
    if (b != null)
        // ...
    
lc. avatar Mar 24 '09 10:03 lc.
Aceptado

El compilador reemplaza nulllas comparaciones con una llamada a HasValue, por lo que no existe una diferencia real. Simplemente haga lo que sea más legible/tenga más sentido para usted y sus colegas.

Rex M avatar Mar 24 '2009 03:03 Rex M

Prefiero (a != null)que la sintaxis coincida con los tipos de referencia.

cbp avatar Aug 14 '2009 04:08 cbp