У C # скажіть, що ви хочете отримати значення з PropertyC у цьому прикладі, і ObjectA, PropertyA та PropertyB можуть бути нульовими.
ObjectA.PropertyA.PropertyB.PropertyC
Як я можу безпечно отримати PropertyC із найменшою кількістю коду?
Зараз я би перевірив:
if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
// safely pull off the value
int value = objectA.PropertyA.PropertyB.PropertyC;
}
Було б непогано зробити щось подібне (псевдокод).
int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;
Можливо, ще більше впав із оператором нульового злиття.
EDIT Спочатку я сказав, що мій другий приклад був схожий на js, але я змінив його на psuedo-код, оскільки було правильно вказано, що він не буде працювати в js.
ObjectA
абоPropertyA
є нулем.