C# でプロパティのプロパティが null かどうかを確認するエレガントな方法 質問する

C# でプロパティのプロパティが null かどうかを確認するエレガントな方法 質問する

PropertyCC# では、この例でおよび から値を取得するとしますObjectAPropertyAおよび は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;

おすすめ記事