C# 6.0 null 条件演算子の詳細な説明: ?.
C# 6.0 で導入された ?. 演算子 (null 条件演算子) は、開発者の間で広く注目を集めています。これにより、null 参照を処理する洗練された方法が提供され、よりクリーンで効率的なコードが得られます。
? 演算子の詳細説明
? 演算子の中心的な役割は、潜在的な null 参照例外を防ぐことです。その動作メカニズムは次のとおりです:
実際の応用: null 参照例外の回避
次の例を考えてみましょう:
<code class="language-csharp">public class A { public string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode }</code>
この例では、?. 演算子は a が空の場合を適切に処理します。 a が空の場合、a?.PropertyOfA は null を返し、後続の比較によって発生する NullReferenceException を回避します。 a が空でない場合、a.PropertyOfA が評価され、foo と比較されます。
条件文との類似性
空の条件演算子は、簡略化された条件文に似ています。
<code class="language-csharp">string bar = (a == null ? null : a.PropertyOfA); if (bar != foo) { ... }</code>
ただし、?. 演算子はよりクリーンで効率的な代替手段を提供します。
型変換に関する注意事項
? 演算子の使用は式のタイプに影響を与える可能性があることに注意してください。たとえば、プロパティが long 型のデータを返す場合、null 条件演算子を使用すると、long?:
型の式が生成されます。<code class="language-csharp">FileInfo fi = ...; // fi可能为空 long? length = fi?.Length; // 如果fi为空,length将为空</code>
概要
C# 6.0 の ?. 演算子は、null 参照を処理する便利で安全な方法を提供し、多くのシナリオでの明示的な null チェックや面倒なエラー処理の必要性を回避します。この強力な機能を使用すると、開発者はより堅牢で効率的なコードを作成でき、予期しない例外の可能性が減り、コードの可読性が向上します。
以上がC#6.0のnull条件演算子(?。)は、nullReferenceExceptionsをどのように防止しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。