¿Cuál es la mejor forma de determinar si una variable de referencia de objeto es null
?¿Cómo se determina si la referencia del objeto es nula?
¿Es el siguiente?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
¿Cuál es la mejor forma de determinar si una variable de referencia de objeto es null
?¿Cómo se determina si la referencia del objeto es nula?
¿Es el siguiente?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
Sí, tiene usted razón, el siguiente fragmento es el camino a seguir si se desea ejecutar código de su elección:
MyObject myObjVar;
if (myObjVar == null)
{
// do stuff
}
Por cierto: El código no se compilará la forma en que es ahora, porque se accede al myObjVar
antes de que se inicialice.
@DanielHilgarth, Absolutamente correcto, acabo de probarlo, no debería compilar – Habib
La forma en que está haciendo es la mejor manera
if (myObjVar == null)
{
// do stuff
}
pero se puede utilizar null-coalescing operator??
para comprobar, así como asignar algo
var obj = myObjVar ?? new MyObject();
Creo que el operador nulo-coalescente se introdujo en C# 2 – TheEvilPenguin
@TheEvilPenguin, tiene razón, modifiqué mi respuesta – Habib
puede:
MyObject myObjVar = MethodThatMayOrMayNotReturnNull();
if (if (Object.ReferenceEquals(null, myObjVar))
{
// do stuff
}
¿por qué la necesidad de dos declaraciones if? –
Puede usar Object. ReferenceEquals
if (Object.ReferenceEquals(null, myObjVar))
{
.......
}
Esto devolvería verdadero, si el myObjVar es nulo.
Esto es útil si desea anular el operador == para un objeto. – mac10688
¿A diferencia de qué? –
@MichaelPetrotta: ¿por eso hago la pregunta? ¿Hay alguna mejor alternativa? – CJ7
Si quiere usar algo de manera predeterminada, siempre puede hacer 'MyObject obj = myObjVar ?? DefaultObjVar' –