Cercare alcune indicazioni sulle best practice. Diciamo che ho una linea di codice come questo:Come verificare null nei riferimenti annidati
Color color = someOrder.Customer.LastOrder.Product.Color;
dove clienti, LastOrder, prodotto e colore potrebbe essere null
in condizioni normali. Mi piacerebbe che il colore fosse nullo se uno qualsiasi degli oggetti nel percorso fosse nullo, comunque; per evitare eccezioni di riferimento null, dovrei verificare la condizione nulla per ognuno degli oggetti, ad es.
Color color = someOrder == null ||
someOrder.Customer == null ||
someOrder.Customer.LastOrder == null ||
someOrder.Customer.Product == null ?
null : someOrder.Customer.LastOrder.Product.Color;
o potrei fare questo
Color color = null;
try {color = someOrder.Customer.LastOrder.Product.Color}
catch (NullReferenceException) {}
Il primo metodo funziona in modo chiaro, ma sembra un po 'più noioso per codice e difficile da leggere. Il secondo modo è un po 'più semplice, ma probabilmente non è una buona idea usare la gestione delle eccezioni per questo.
Esiste un altro modo di scorciatoia per verificare i valori nulli e assegnare un valore null al colore se necessario? O qualche idea su come evitare NullReferenceExceptions quando si utilizzano riferimenti annidati?
possibile duplicato (http [profonda Null controllo, c'è un modo migliore?]: // StackOverflow .com/questions/2080647/deep-null-checking-is-there-a-better-way) –
@MarkByers si, grazie per il rif to the oth domanda. Aggiornamento –