[C# 문법] C# Null 관련 연산자(??, .? 기호)
- C#/C# 문법
- 2020. 12. 19. 01:00
안녕하세요.
오늘은 C# 문법에서 Null 관련 연산자에 대해서 공부해 보려고 합니다.
C#에서 크게 Null 관련 제공해주는 연산자는, 널 집합 연산자와 널 조건 연산자 2가지가 있습니다.
오늘은 이 2가지의 널 관련 연산자 사용 방법에 대해서 공부해 보려고 합니다.
Null 집합 연산자
- Null 집합 연산자는 ?? 이 기호로 표시합니다.
뜻은 왼쪽 피연산자가 널이 아니면 그 피연산자로 평가하고, 만약 Null 이라면 오른쪽 피연산자로 평가한다는 의미 인데요.
소스코드로는 아래와 같이 쓸 수 있습니다.
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
using System;
using System.Collections.Generic;
namespace polyTest
{
class Program
{
static void Main(string[] args)
{
string str1 = null;
string str2 = str1 ?? "없음"; //s2는 없음으로 출력
Console.WriteLine($"str1 : {str1} , str2 : {str2}");
}
}
}
|
cs |
실행 결과
위와 같이 현재 str1 의 값이 null 이기 때문에 ?? 연산자를 통해 str2의 값은 “없음” 이라는 문자열이 저장되고 출력된 것을 확인하실 수 있습니다.
Null 조건부 연산자
- Null 조건부 연산자는 C# 6.0 버전에 새롭게 추가된 내용으로써, ?. 이렇게 기호로 표시할 수 있습니다. 이 연산자를 이용하면 표준적인 마침표 연산자를 이용해서 메서드를 호출하거나 멤버에 접근할 때 피 연산자가 Null 인지 따로 체크할 필요가 없고, NullReferenceException 예외도 발생하지않습니다.
그럼 예제를 통해서 어떻게 사용하는지 보여 드리도록 하겠습니다.
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using System;
using System.Collections.Generic;
namespace polyTest
{
class Program
{
static void Main(string[] args)
{
string str1 = null;
string str2 = str1?.ToString(); //위와 같이 ?. 기호를 사용하면 str2에 null이 저장됩니다.
Console.WriteLine($"str2 : {str2}");
string str3 = null;
string str4 = str3?.ToString() ?? "없음";
Console.WriteLine($"str3 : {str3}, str4 : {str4}");
}
}
}
|
cs |
실행 결과
위와 같이 ?. 기호를 통해서 변수들을 선언하고 값을 출력해 보았습니다.
감사합니다.^^
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# async 비동기 메서드 반환값 받기 (0) | 2020.12.22 |
---|---|
[C# 문법] C# async, await 이용하여 비동기 예제 프로그램 만들기 (0) | 2020.12.21 |
[C# 문법] 추상 클래스, 추상 메서드 (abstract) (0) | 2020.12.18 |
[C# 문법] C# 다형성이란 (0) | 2020.12.17 |
[C# 문법] C# 상속 (0) | 2020.12.15 |
이 글을 공유하기