C#의 ?? 연산자(null 병합 연산자)는 null 피연산자에 대한 대체 값을 제공합니다. 즉, 피연산자 x가 null인지 확인합니다. x가 null이 아닌 경우 x 값을 반환합니다. x가 null인 경우 대체 값 표현식 y를 반환합니다.
C#의 ?? 연산자
null 병합 연산자라고도 하는 C#의 ?? 연산자는 피연산자가 null일 때 대체 값을 제공하는 데 사용됩니다.
Syntax
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!