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では機能しないことが正しく指摘されていたので、疑似コードに変更しました。