Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 두 개의 물음표(??)는 무엇을 의미합니까?


null 병합 입니다. 운영자. 널 병합 연산자 ?? null이 아니면 왼쪽 피연산자의 값을 반환합니다. 그렇지 않으면 오른쪽 피연산자를 평가하고 결과를 반환합니다. ?? 연산자는 왼쪽 피연산자가 null이 아닌 것으로 평가되는 경우 오른쪽 피연산자를 평가하지 않습니다.

nullable 형식은 정의되지 않거나 형식의 도메인에 있는 값을 나타낼 수 있습니다. 우리는 사용할 수 있습니다 ?? 왼쪽 피연산자가 nullable 형식일 때 적절한 값을 반환하는 연산자입니다. ??를 사용하지 않고 nullable 값 형식을 nullable이 아닌 값 형식에 할당하려고 하면 ?? 연산자를 사용하면 컴파일 타임 오류가 발생하고 강제로 캐스팅하면 InvalidOperationException 예외가 발생합니다.

다음은 Null-Coalescing 연산자(??) 연산자의 장점입니다. -

  • nullable 항목의 기본값을 정의하는 데 사용됩니다(값 유형 및 참조 유형 모두에 대해).

  • 런타임 InvalidOperationException 예외를 방지합니다.

  • 많은 중복 "if" 조건을 제거하는 데 도움이 됩니다.

  • 참조 유형과 값 유형 모두에서 작동합니다.

  • 코드가 잘 정리되고 가독성이 높아집니다.

예시

using System;
namespace MyApplication{
   class Program{
      static void Main(string[] args){
         int? value1 = null;
         int value2 = value1 ?? 99;
         Console.WriteLine("Value2: " + value2);
         string testString = "Null Coalescing";
         string resultString = testString ?? "Original string is null";
         Console.WriteLine("The value of result message is: " + resultString);
      }
   }
}

출력

위 예제의 출력은 다음과 같습니다.

Value2: 99
The value of result message is: Null Coalescing