2017-10-01 4 views
0

ちょうどLINQの学習を開始した後、チュートリアルで提供されているサンプルステートメントに固執しました(C#.Net Frameworkで作業していないでください)。声明? LINQで使用されている演算子

arr?.Count(w => w != null) > 0 

戻りTruearr(配列またはリスト)内で、少なくとも1なしヌル要素彼らの場合のみです。しかし、?オペレータはそこで何をしていますか?これは別の形式または三項演算子ですか?この点について貴重な知識をお寄せください。私はあなたから良い答えを読むことに喜んで感謝します。

注:文中の?演算子を削除しようとしましたが、違いは見つかりませんでした。

答えて

2

それは基本的にnullをチェックし、nullでない場合の条件を実行していますNull conditional operator

です。 arrがnullの場合、このコードは例外をスローしません。 Null条件演算子なしで書かれた場合、NullReferenceExceptionが得られます。

// this would throw an exception 
int?[] arr; 
arr.Count(w => w != null) > 0; 

// this will check if arr is null and not proceed to call the .Count method 
int?[] arr; 
arr?.Count(w => w != null) > 0; 
関連する問題