1

重複の可能性:
C# の if-null-then-null 式

私がC#で見逃しているのは、SQLサーバーのようなnull参照の扱いです:

var a = SomeObject.Property1.Property2.Property3.Property4

いずれかのプロパティが null の場合、NullReferenceException が発生します。エラーなしで null に設定すると便利な場合aがあり、これを簡単に確認できます。

同様に、

var a = SomeList.FirstOrDefault(...).Select(...)

aこれは、nullに設定するのではなく、シーケンスに要素が含まれていない場合にも例外をスローします。

だから私の質問:これらのシナリオでSQLのような動作を実装するための短くて良い方法(おそらく拡張機能を使用しますか?)はありますか?

4

1 に答える 1

0

インスタンス化されていないオブジェクトは null であるため、これは静的プロパティでのみ機能します。拡張メソッドでもこれを行う方法はありません。拡張メソッドは、拡張しているオブジェクトのインスタンスを最初のパラメーターとして受け取るためです。

これを行う醜い方法...

var a;
try {
   a = SomeObject.Property1.Property2.Property3.Property4;
} catch (NullReferenceException) { }
于 2012-12-10T16:56:51.073 に答える