C# の演算子 ? と ?? の違いは何ですか?

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

? 演算子と ?? 演算子は両方とも条件演算子であり、値を選択するために使用されます。 ?? 演算子は、どちらかのオペランドが null の場合に例外をスローし、?? 演算子は null 値を安全に処理するために使用され、左側のオペランドが null の場合は右側のオペランドを返します。

C# の演算子 ? と ?? の違いは何ですか?

C# の演算子 ? と ?? の違い

演算子は両方とも、特定の条件で値を選択するために使用されます。ただし、主な違いは null 値を処理するメカニズムです:

? 演算子 (三項条件演算子)

    構文: condition ? value_if_true : value_if_false
  • は条件で使用されます 1 つの値を返しますtrueの場合、それ以外の場合は別の値を返します。 condition ? value_if_true : value_if_false
  • 用于在条件成立时返回一个值,否则返回另一个值。
  • 如果条件为 true,则返回 value_if_true,否则返回 value_if_false
  • 如果 value_if_truevalue_if_false 为空,则会引发 NullReferenceException。

示例:

<code class="csharp">int? nullableValue = null;
string result = nullableValue ?? "Default value";  // result = "Default value"</code>
ログイン後にコピー

?? 操作符(空合并运算符)

  • 语法:leftOperand ?? rightOperand
  • 用于在左操作数为 null 时返回右操作数。
  • 如果左操作数不为 null,则返回左操作数;否则,返回右操作数。
  • 右操作数可以是任何值,包括 null。

示例:

<code class="csharp">object nullableObject = null;
object result = nullableObject ?? new object();  // result = new object()</code>
ログイン後にコピー

总结

  • ? 运算符用于在特定条件下选择值,如果任一操作数为 null 则会引发异常。
  • ??
  • 条件が true の場合は value_if_true を返し、それ以外の場合は value_if_false を返します。
🎜 value_if_true または value_if_false が空の場合、NullReferenceException がスローされます。 🎜🎜🎜🎜 例: 🎜🎜rrreee🎜🎜?? 演算子 (null 結合演算子) 🎜🎜🎜🎜 構文: leftOperand ?? rightOperand🎜🎜 は、左側のオペランドが null の場合に返されます。 。 🎜🎜左のオペランドが null でない場合は、左のオペランドを返し、それ以外の場合は、右のオペランドを返します。 🎜🎜 右側のオペランドには、null を含む任意の値を指定できます。 🎜🎜🎜🎜例: 🎜🎜rrreee🎜🎜概要🎜🎜🎜🎜? 演算子は、特定の条件下で値を選択するために使用され、どちらかのオペランドが null の場合は例外をスローします。 🎜🎜?? 演算子は、左側のオペランドが null の場合に右側のオペランドを返すために使用され、null 値を安全に処理できます。 🎜🎜

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

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