validar then operator c# .net null

then - string nullable c#



Comprobando nulo, ¿cuál es mejor? "Null==" o "== null" (5)

En c # no hay diferencia. Es un viejo hábito de los desarrolladores de C / C ++ evitar un error común cuando esta es la sintaxis correcta:

if(o = null)

En C # eso no compilaría pero en C y C ++ lo haría, dejándote con un error bastante desagradable. Por lo tanto, muchas personas se acostumbraron a hacer

if(null == o)

Dupe: diferencia nula

Hace una vida me encontré con un artículo que explicaba que los siguientes no eran iguales (en c #):

if (o == null) {} if (null == o) {}

El artículo explicaba que se prefería este último porque daba como resultado una prueba más precisa. He estado codificando así desde entonces. Ahora que entiendo mucho más, estaba buscando el artículo, u otro similar, para ver cuáles fueron los hallazgos exactos, pero no encuentro nada sobre el tema.

¿Pensamientos? ¿Hay una diferencia? La primera mirada diría que no. Pero quién sabe qué pasa en las entrañas de la compilación de IL y C #.


Este último es un remanente de los días C / C ++, donde fue posible asignar accidentalmente un valor en lugar de comparar. C # no le permitirá hacer esto, por lo que / o es aceptable (pero el primero es más legible).


Trabajo con Java ... y tengo el hábito de tener constantes en el LHS para todas las comparaciones conmutativas.

"name".equals(name) null == obj "55".compareTo(numString)

etc. Solo para evitar NullPointerExceptions innecesarios ...


es un viejo hábito evitar que escriba if (o = null) . if (null = o) es un error de sintaxis. algo inútil en C #, porque los valores nulos nunca se fuerzan en booleanos.


Irrelevante para C #, esto es de C. Vea esta pregunta para una discusión.