본문 바로가기

개인공부/C#

[C#] 연산자(Operator)

 

 

■ 연산자(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}");

 

Example 결과

■ 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]}");

 

Example 결과

 

■ 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"}");

 

Example 결과