Trong C #, giả sử rằng bạn muốn lấy một giá trị của PropertyC trong ví dụ này và ObjectA, PropertyA và PropertyB đều có thể là rỗng.
Đối tượngA.PropertyA.PropertyB.PropertyC
Làm cách nào tôi có thể nhận được PropertyC một cách an toàn với số lượng mã ít nhất?
Ngay bây giờ tôi sẽ kiểm tra:
if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
// safely pull off the value
int value = objectA.PropertyA.PropertyB.PropertyC;
}
Sẽ rất tuyệt nếu làm một cái gì đó giống như thế này hơn (mã giả).
int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;
Thậm chí có thể sụp đổ hơn nữa với một toán tử kết hợp không.
CHỈNH SỬA Ban đầu tôi nói ví dụ thứ hai của tôi giống như js, nhưng tôi đã đổi nó thành mã psuedo vì nó được chỉ ra một cách chính xác rằng nó sẽ không hoạt động trong js.
ObjectA
hoặcPropertyA
rỗng.