Skip to main content

[This is C#] Chapter 4. 데이터를 가공하는 연산자

이것이 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 할당 연산자 =, *=, /=, %=, +=, <<=, >>=, &=, ^=, `