Buscando alguna guía de mejores prácticas. Digamos que tengo una línea de código como este:Cómo comprobar nulo en referencias anidadas
Color color = someOrder.Customer.LastOrder.Product.Color;
donde al cliente, LastOrder, Producto y color puede ser null
en condiciones normales. Me gustaría que el color sea nulo si alguno de los objetos en la ruta es nulo, sin embargo; para evitar excepciones de referencia nulas, necesitaría verificar la condición nula para cada uno de los objetos, p.
Color color = someOrder == null ||
someOrder.Customer == null ||
someOrder.Customer.LastOrder == null ||
someOrder.Customer.Product == null ?
null : someOrder.Customer.LastOrder.Product.Color;
o que podía hacer esto
Color color = null;
try {color = someOrder.Customer.LastOrder.Product.Color}
catch (NullReferenceException) {}
El primer método funciona con claridad, pero parece un poco más tedioso de código y más difícil de leer. La segunda forma es un poco más fácil, pero probablemente no es una buena idea usar el manejo de excepciones para esto.
¿Hay alguna otra forma de atajo para verificar nulos y asignar null a color si es necesario? ¿O alguna idea sobre cómo evitar NullReferenceExceptions al usar tales referencias anidadas?
posible duplicado de (http [profunda nulo comprobar, hay una manera mejor?]: // stackoverflow .com/questions/2080647/deep-null-checking-is-there-a-better-way) –
@MarkByers sí, gracias por la referencia al otro pregunta er –