W C # powiedz, że chcesz pobrać wartość z PropertyC w tym przykładzie, a ObjectA, PropertyA i PropertyB mogą mieć wartość null.
ObjectA.PropertyA.PropertyB.PropertyC
Jak mogę bezpiecznie uzyskać PropertyC przy najmniejszej ilości kodu?
Teraz sprawdziłbym:
if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
// safely pull off the value
int value = objectA.PropertyA.PropertyB.PropertyC;
}
Byłoby miło zrobić coś więcej takiego (pseudokod).
int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;
Prawdopodobnie jeszcze bardziej upadł z operatorem koalescencji zerowej.
EDYCJA Pierwotnie powiedziałem, że mój drugi przykład był podobny do js, ale zmieniłem go na psuedo-code, ponieważ zostało prawidłowo wskazane, że nie będzie działać w js.
ObjectA
lubPropertyA
są puste.