■ 연산자(Operator) :
- 주어진 식의 결과 값을 산출하는 것을 연산이라고 하며 연산에 사용되는 기호를 연산자라 한다.
- 컴파일러에게 데이터 가공을 지시하는 기호
■ 연산자 종류 :
우선순위 | 종류 | 연산자 | 결합법칙(associativity) |
1 | 식 | [ ] ( ) . -> ++ --(후위) |
왼쪽에서 오른쪽 ( → ) |
2 | 단항 | sizeof & * + - ~ ! (전위)++ -- |
오른쪽에서 왼쪽 ( ← ) |
3 | 단항 | 형식 캐스팅 | 오른쪽에서 왼쪽 ( ← ) |
4 | 곱하기 | * / % | 왼쪽에서 오른쪽 ( → ) |
5 | 더하기 | + - | 왼쪽에서 오른쪽 ( → ) |
6 | 비트 시프트 | << >> | 왼쪽에서 오른쪽 ( → ) |
7 | 관계 | < > <= >= | 왼쪽에서 오른쪽 ( → ) |
8 | 같음 | == != | 왼쪽에서 오른쪽 ( → ) |
9 | 비트 AND | & | 왼쪽에서 오른쪽 ( → ) |
10 | 비트 제외 OR | ^ | 왼쪽에서 오른쪽 ( → ) |
11 | 비트 포함 OR | | | 왼쪽에서 오른쪽 ( → ) |
12 | 논리 AND | && | 왼쪽에서 오른쪽 ( → ) |
13 | 논리 OR | || | 왼쪽에서 오른쪽 ( → ) |
14 | 조건식 | ? : | 오른쪽에서 왼쪽 ( ← ) |
15 | 단순 및 복합 할당 | = *= /= %= += -= <<= >>= &= ^= |= |
오른쪽에서 왼쪽 ( ← ) |
16 | 순차적 계산 | , | 왼쪽에서 오른쪽 ( → ) |
■ 조건 연산자 :
조건식 ? 참일 때 값 : 거짓일 때 값 |
■ Example
int num = 10;
string result = (num == 10) ? "True 입니다" : "False 입니다";
Console.WriteLine($"result : {result}");
■ NULL 조건부 연산자 :
- 객체 멤버에 접근하긴 전에 null 검사
객체?.반환 멤버 객체 ?[배열(컬렉션) index] |
■ Example
Test test = null;
Console.WriteLine($"test : {test?.num}");
test = new Test();
test.num = 100;
Console.WriteLine($"test : {test?.num}");
ArrayList testList = null;
testList?.Add("AA");
testList?.Add("BB");
Console.WriteLine($"testList count : {testList?.Count}");
Console.WriteLine($"testList[0] : {testList?[0]}");
Console.WriteLine($"testList[1] : {testList?[1]}");
testList = new ArrayList();
testList?.Add("AA");
testList?.Add("BB");
Console.WriteLine($"testList count : {testList?.Count}");
Console.WriteLine($"testList[0] : {testList?[0]}");
Console.WriteLine($"testList[1] : {testList?[1]}");
■ NULL 병합 연산자 :
- 변수, 객체의 null 검사
obj1 ?? obj2 |
■ Example
int? num = null;
Console.WriteLine($"num : {num ?? 0}");
num = 10;
Console.WriteLine($"num : {num ?? 0}");
string str = null;
Console.WriteLine($"str : {str ?? "unknown"}");
str = "text data";
Console.WriteLine($"str : {str ?? "unknown"}");
'개인공부 > C#' 카테고리의 다른 글
[C#] 흐름제어-점프문(Jump Statement) (0) | 2022.08.30 |
---|---|
[C#] 흐름제어-반복문(Repetitive Statement) (0) | 2022.08.29 |
[C#] 흐름제어-조건문(Conditional statement) (0) | 2022.08.28 |
[C#] 변수(Variable), 상수(Constant) (0) | 2022.08.25 |
[C#] Hello World (0) | 2022.08.25 |