[이것이 C#이다] Chapter 4. 데이터를 가공하는 연산자
Table of Contents
이것이 C#이다 책을 읽고 공부한 노트입니다.
null 조건부 연산자 #
- 해당 객체가
null이면null을 반환하고, null이 아니면.뒤에 지정된 멤버를 반환한다.
class Foo
{
public int member;
}
Foo foo = null;
int? bar;
bar = foo?.member; // foo가 null이므로 null을 반환한다.
foo = new Foo();
bar = foo?.member; // foo가 null이 아니므로 member를 반환한다.
null 병합 연산자 #
- 왼쪽 피연산자가
null이면 오른쪽 피연산자를 반환하고, null이 아니면 왼쪽 피연산자를 그대로 반환한다.
int? a = null;
int result = a ?? 0; // a가 null이므로 0을 반환한다.
a = 1;
result = a ?? 0; // a가 null이 아니므로 1을 반환한다.
연산자 우선순위 #
| 우선순위 | 종류 | 연산자 |
|---|---|---|
| 1 | 증가/감소 연산자, null 조건부 연산자 |
a++, a--, ?., ?[] |
| 2 | 증가/감소 연산자 | ++a, --a |
| 3 | 산술 연산자 | *, /, % |
| 4 | 산술 연산자 | +, - |
| 5 | 시프트 연산자 | <<, >> |
| 6 | 관계 연산자 | <, >, <=, >=, is, as |
| 7 | 관계 연산자 | ==, != |
| 8 | 비트 논리 연산자 | & |
| 9 | 비트 논리 연산자 | ^ |
| 10 | 비트 논리 연산자 | ` |
| 11 | 논리 연산자 | && |
| 12 | 논리 연산자 | ` |
| 13 | null 병합 연산자 |
?? |
| 14 | 조건 연산자 | ?: |
| 15 | 할당 연산자 | =, *=, /=, %=, +=, <<=, >>=, &=, ^=, ` |