ベストプラクティスのガイダンスをお探しですか?のは、私はこのようなコードの行があるとしましょう:お客様、LastOrder、製品、および色が通常の状態でnull
可能性がありネストした参照でnullをチェックする方法
Color color = someOrder.Customer.LastOrder.Product.Color;
。しかし、パス内のオブジェクトのいずれかがnullの場合、colorを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を避ける方法について考えてみましょう。
の可能重複[ディープヌルチェック、良い方法はありますか?](のhttp:// stackoverflowの.com/questions/2080647/deep-null-checking-is-there-a-better-way) –
@MarkByersはい、ありがとうございました。質問です。 –