C# ?? 연산자

[제목] C# ?? 연산자

SQL Server에 COALESCE() 라는 함수가 있다. 이 함수는 함수 파라미터들이 NULL이 아닐 때까지 계속 체크를 해서 NULL이 아닌 파라미터의 값을 리턴한다.

예를 들어, COALESCE(a,b,c,d,'0') 이 있을 때 만약 a, b가 NULL이고 c가 NULL이 아니면 c의 값을 리턴한다.
이를 C# 으로 구현하면 어떻게 될까?

C# if 문을 사용하면 다음과 같이 될 것이다.

if (a != null) return a; 
else if (b != null) return b; 
else if (c != null) return c; 
else if (d != null) return d; 
else return "0";

이를 좀 더 간략하게 만들길 원한다면 C#의 ? 연산자를 사용할 수 있다.

return a != null ? a : b != null ? b : c != null ?
       c : d != null ? d : "0";

그리고 조금 더 생각해 보면, C#의 ?? 연산자 (Null-coalescing operator)를 사용하여 이렇게 간략하게 할 수도 있을 것이다.

return a ?? b ?? c ?? d ?? "0";

참고 : C#의 ?? 연산자는 C# 2.0 이상에 지원한다.
(http://www.csharpstudy.com/CSharp/CSharp-operator.aspx)



본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.