PropertyC
C# では、この例でおよび から値を取得するとしますObjectA
。PropertyA
および はPropertyB
すべて null になる場合があります。
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;
null 合体演算子によってさらに崩壊する可能性があります。
編集当初、2 番目の例は js のようだと言いましたが、js では動作しないという指摘が正しくあったため、疑似コードに変更しました。
ベストアンサー1
C# 6では、ヌル条件演算子したがって、元のテストは次のようになります。
int? value = objectA?.PropertyA?.PropertyB?.PropertyC;