C#で、この例ではPropertyCから値をプルしたいとし、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では機能しないことが正しく指摘されていたため、擬似コードに変更しました。
ObjectA
またはPropertyA
nullの場合は常に「オブジェクトが予期されています」エラーが発生するはずです。