C# 6.0 の演算子: Null 条件付き機能の解明
C# 6.0 では ?. 演算子が導入され、null 参照の処理方法が完全に変わりました。この演算子は、null オブジェクトのプロパティにアクセスするとき、またはそのメソッドを呼び出すときに実行時例外を引き起こす可能性がある一般的な問題を解決します。
?. 演算子
の目的?. 演算子は「空の条件演算子」とも呼ばれ、次の主要な機能があります。
使用法
?. 演算子の使用法は簡単です:
<code class="language-csharp">if (a?.PropertyOfA != foo) { //somecode }</code>上記の例では、a が null の場合、式 a?.PropertyOfA は null と評価され、foo との比較の結果は false になり、null 参照異常を発生させることなく if ステートメントで実行を続行できます。
等価
概念的には、? 演算子は次のコードと同等です:
<code class="language-csharp">if (a != null) { a.PropertyOfA; } else { null; }</code>ただし、?. 演算子は a の冗長な評価を回避し、コードのパフォーマンスを最適化します。
サンプルアプリケーション
FileInfo オブジェクト fi があるシナリオを考えてみましょう。このオブジェクトは null である場合とそうでない場合があります。 ? 演算子を使用すると、潜在的な例外を回避できます:
<code class="language-csharp">FileInfo fi = ...; // fi 可能为空 long? length = fi?.Length; // 如果 fi 为空,则 length 将为空</code>この場合、fi が空の場合、例外をスローせずに長さは null に設定されます。
結論
C# 6.0 の ?. 演算子は、null 参照を処理するための洗練された効率的なソリューションを提供し、開発者がより堅牢で簡潔なコードを作成できるようにします。単一の式で null チェックとメンバー アクセスの両方を提供することで、コード構造が簡素化され、プログラムの安全性が向上します。以上がC# 6.0 の Null 条件演算子 (?.) はどのようにして NullReferenceExceptions を防ぐのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。