Qual è il modo migliore per determinare se una variabile di riferimento oggetto è null
?Come determinare se il riferimento all'oggetto è nullo?
È il seguente?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
Qual è il modo migliore per determinare se una variabile di riferimento oggetto è null
?Come determinare se il riferimento all'oggetto è nullo?
È il seguente?
MyObject myObjVar = null;
if (myObjVar == null)
{
// do stuff
}
Sì, hai ragione, il seguente frammento è la strada da percorrere se si vuole eseguire codice arbitrario:
MyObject myObjVar;
if (myObjVar == null)
{
// do stuff
}
BTW: Il codice non sarebbe compilare il modo in cui è ora, perché si accede a myObjVar
prima di essere inizializzato.
@DanielHilgarth, assolutamente giusto, l'ho appena testato, non dovrebbe compilare – Habib
Il modo in cui si sta facendo è il modo migliore
if (myObjVar == null)
{
// do stuff
}
ma è possibile utilizzare null-coalescing operator??
per controllare, così come assegnare qualcosa
var obj = myObjVar ?? new MyObject();
Penso che l'operatore a coalescenza nulla sia stato introdotto in C# 2 – TheEvilPenguin
@TheEvilPenguin, hai ragione, hai modificato la mia risposta – Habib
è possibile:
MyObject myObjVar = MethodThatMayOrMayNotReturnNull();
if (if (Object.ReferenceEquals(null, myObjVar))
{
// do stuff
}
perché la necessità di due istruzioni if? –
È possibile utilizzare l'oggetto. ReferenceEquals
if (Object.ReferenceEquals(null, myObjVar))
{
.......
}
Ciò restituirebbe true se myObjVar è null.
Ciò è utile se si desidera sovrascrivere l'operatore == per un oggetto. – mac10688
Contrariamente a cosa? –
@MichaelPetrotta: è per questo che faccio la domanda? C'è un'alternativa migliore? – CJ7
Se si desidera eseguire il default su qualcosa, si può sempre fare 'MyObject obj = myObjVar ?? DefaultObjVar' –