C # 'da, bu örnekte PropertyC'den bir değer almak istediğinizi ve ObjectA, PropertyA ve PropertyB'nin tümü boş olabilir.
ObjectA.PropertyA.PropertyB.PropertyC
PropertyC'yi en az miktarda kodla güvenli bir şekilde nasıl alabilirim?
Şu anda kontrol ederdim:
if(ObjectA != null && ObjectA.PropertyA !=null && ObjectA.PropertyA.PropertyB != null)
{
// safely pull off the value
int value = objectA.PropertyA.PropertyB.PropertyC;
}
Bunun gibi bir şey yapmak güzel olurdu (sözde kod).
int value = ObjectA.PropertyA.PropertyB ? ObjectA.PropertyA.PropertyB : defaultVal;
Bir sıfır birleştirme operatörü ile muhtemelen daha da fazla çöktü.
DÜZENLE Başlangıçta ikinci örneğimin js gibi olduğunu söyledim, ancak js'de çalışmayacağına doğru bir şekilde işaret edildiği için psuedo-koduna değiştirdim.
ObjectA
veyaPropertyA
boş olduğunda bir "nesne bekleniyor" hatası almalısınız .