Tìm kiếm một số hướng dẫn thực hành tốt nhất. Hãy nói rằng tôi có một dòng mã như thế này:Cách kiểm tra null trong các tham chiếu lồng nhau
Color color = someOrder.Customer.LastOrder.Product.Color;
nơi khách hàng, LastOrder, sản phẩm, và màu sắc có thể là null
dưới điều kiện bình thường. Tôi muốn màu sắc là null nếu bất kỳ một trong các đối tượng trong đường dẫn là null, tuy nhiên; để tránh các ngoại lệ tham chiếu null, tôi cần phải kiểm tra điều kiện rỗng cho từng đối tượng, ví dụ:
Color color = someOrder == null ||
someOrder.Customer == null ||
someOrder.Customer.LastOrder == null ||
someOrder.Customer.Product == null ?
null : someOrder.Customer.LastOrder.Product.Color;
hoặc tôi có thể làm điều này
Color color = null;
try {color = someOrder.Customer.LastOrder.Product.Color}
catch (NullReferenceException) {}
Phương pháp đầu tiên làm việc rõ ràng, nhưng có vẻ như tẻ nhạt hơn một chút để mã và khó khăn hơn để đọc. Cách thứ hai là một chút dễ dàng hơn nhưng có lẽ không phải là một ý tưởng tốt để sử dụng xử lý ngoại lệ cho việc này.
Có cách nào khác để kiểm tra các giá trị rỗng và gán null cho màu nếu cần thiết không? Hoặc bất kỳ suy nghĩ về làm thế nào để tránh NullReferenceExceptions khi sử dụng tài liệu tham khảo lồng nhau?
thể trùng lặp của (http [Sâu Null kiểm tra, là có một cách tốt hơn?]: // stackoverflow .com/question/2080647/sâu-null-kiểm tra-là-có-một-tốt hơn-way) –
@MarkByers có, cảm ơn cho ref cho oth câu hỏi er. –