C# では ?? とはどういう意味ですか?

下次还敢
リリース: 2024-05-09 22:39:20
オリジナル
1177 人が閲覧しました

C# の ?? 演算子 (null 合体演算子) は、null オペランドの代替値を提供し、オペランド x が null かどうかをチェックします。 x が null でない場合は、x の値を返します。 x が null の場合、代替値式 y を返します。

C# では ?? とはどういう意味ですか?

C# の ?? 演算子

C# の ?? 演算子は、null 合体演算子とも呼ばれ、オペランドが null の場合に代替値を提供するために使用されます。

構文

<code class="c#">x ?? y</code>
ログイン後にコピー

ここで:

  • x: null かどうかを確認する式。 x:要检查是否为 null 的表达式。
  • y:如果 x 为 null,则返回的备用值表达式。

工作原理

?? 操作符首先检查 x 是否为 null。如果不是,它将返回 x 的值。但是,如果 x 为 null,它将返回备用值表达式 y 的值。

示例

<code class="c#">string name = null;
string defaultName = "Unknown";

string fullName = name ?? defaultName; // fullName 将为 "Unknown",因为 name 为 null</code>
ログイン後にコピー

如何使用

?? 操作符通常用于防止空引用异常,并在对象或变量为 null 时提供默认值。它可以使代码更加简洁和安全。

与委托比较

?? 操作符的行为类似于条件委托,但它更简洁且更易于阅读。以下代码使用委托实现相同的功能:

<code class="c#">string name = null;
string defaultName = "Unknown";

Func<string, string> getName = (n) => n ?? defaultName;
string fullName = getName(name);</code>
ログイン後にコピー

优点

  • 简洁明了
  • 减少空引用异常
  • 增强代码可读性

缺点

  • 可能导致混乱,如果 x 不是引用类型,或者 y 的类型与 x
  • y: x が null の場合に返される代替値式。
🎜仕組み🎜🎜🎜?? 演算子はまず、x が null かどうかを確認します。そうでない場合は、x の値を返します。ただし、x が null の場合は、代替値式 y の値を返します。 🎜🎜🎜例🎜🎜rrreee🎜🎜🎜🎜🎜?? 演算子の使用方法は、null 参照例外を防止し、オブジェクトまたは変数が null の場合にデフォルト値を提供するためによく使用されます。コードをより簡潔かつ安全にすることができます。 🎜🎜🎜Delegate との比較🎜🎜🎜?? 演算子は条件付きデリゲートのように動作しますが、よりクリーンで読みやすくなっています。次のコードはデリゲートを使用して同じ機能を実現しています。 🎜rrreee🎜🎜 利点 🎜🎜🎜🎜 簡潔で明確 🎜🎜 null 参照例外の削減 🎜🎜 コードの可読性の向上 🎜🎜🎜🎜 欠点 🎜🎜🎜🎜 の場合は混乱が生じる可能性がありますx は参照型ではないか、y の型は x と互換性がありません。 🎜🎜複数の代替値を指定することはできません。 🎜🎜

以上がC# では ?? とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート