null 조건부 연산자란?
null 조건부 연산자는 C# 6.0부터 지원되는 연산자로, null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. null 조건부 연산자는 객체가 null인 경우 해당 속성이나 메서드를 호출하지 않으며, null이 아닌 경우 해당 속성이나 메서드를 호출합니다. null 조건부 연산자는 다음과 같은 형식으로 사용됩니다.
object?.propertyOrMethod;
위의 코드에서 object는 호출할 객체를, propertyOrMethod는 호출할 속성이나 메서드를 나타냅니다. ? 연산자는 object가 null이 아닌 경우 propertyOrMethod를 호출하며, object가 null인 경우 호출하지 않습니다.
null 조건부 연산자의 예
다음은 null 조건부 연산자의 간단한 예입니다.
string str = null;
int? length = str?.Length;
위의 예제에서 str 변수는 null로 초기화됩니다. null 조건부 연산자를 사용하여 str.Length를 호출하면 null이 반환됩니다. 이때, length 변수는 nullable int 형식으로 선언되어 있으므로 null 값을 저장할 수 있습니다.
null 조건부 연산자와 ?연산자의 차이점
null 조건부 연산자와 ?연산자는 비슷한 기능을 수행하지만, 사용하는 상황에 따라 차이가 있습니다.
?연산자는 조건 연산자로서, 조건이 참인 경우와 거짓인 경우에 대해 각각 다른 값을 반환합니다. ?연산자는 다음과 같은 형식으로 사용됩니다.
condition ? true_expression : false_expression;
위의 코드에서 condition은 조건을, true_expression은 조건이 참인 경우 반환되는 값, false_expression은 조건이 거짓인 경우 반환되는 값입니다.
null 조건부 연산자는 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. null 조건부 연산자는 객체가 null인 경우 해당 속성이나 메서드를 호출하지 않으며, null이 아닌 경우 해당 속성이나 메서드를 호출합니다. null 조건부 연산자는 다음과 같은 형식으로 사용됩니다.
object?.propertyOrMethod;
위의 코드에서 object는 호출할 객체를, propertyOrMethod는 호출할 속성이나 메서드를 나타냅니다. ? 연산자는 object가 null이 아닌 경우 propertyOrMethod를 호출하며, object가 null인 경우 호출하지 않습니다.
따라서, ?연산자는 조건 연산자로서 값을 반환하고, null 조건부 연산자는 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다.
결론
C#에서 ?연산자와 null 조건부 연산자는 각각 조건 연산자와 null 값을 갖는 객체의 속성이나 메서드를 호출할 때 사용됩니다. 이러한 연산자를 사용하면 코드의 가독성과 유지 보수성이 향상됩니다. 이번 글을 통해 ?연산자와 null 조건부 연산자에 대해 더욱 자세히 알아보았습니다.
'C#' 카테고리의 다른 글
C# 메서드 매개변수 in, ref, out, param (0) | 2023.06.09 |
---|---|
C# with 식 (0) | 2023.06.08 |
C# 배열 인덱싱 (0) | 2023.06.01 |
이진탐색 알고리즘 (0) | 2023.05.18 |
C# DateTime (0) | 2023.05.16 |