ベストプラクティスのガイダンスを探しています。次のようなコード行があるとします。
Color color = someOrder.Customer.LastOrder.Product.Color;
ここで、Customer、LastOrder、Product、および Color は、null
通常の状態である可能性があります。ただし、パス内のオブジェクトのいずれかが null の場合、色を null にしたいと思います。null 参照の例外を回避するために、オブジェクトごとに null 条件をチェックする必要があります。
Color color = someOrder == null ||
someOrder.Customer == null ||
someOrder.Customer.LastOrder == null ||
someOrder.Customer.Product == null ?
null : someOrder.Customer.LastOrder.Product.Color;
または私はこれを行うことができます
Color color = null;
try {color = someOrder.Customer.LastOrder.Product.Color}
catch (NullReferenceException) {}
最初の方法は明らかに機能しますが、コーディングがやや面倒で読みにくいようです。2 番目の方法は少し簡単ですが、これに例外処理を使用することはお勧めできません。
null をチェックし、必要に応じて null を色に割り当てる別のショートカット方法はありますか? または、そのようなネストされた参照を使用するときに NullReferenceExceptions を回避する方法について何か考えはありますか?