Home Full Site
C# 연산자

C#은 다른 프로그래밍 언어와 비슷하게 수식 연산자, 논리 연산자, 조건 연산자등 다양한 연산자들을 제공하고 있다. 아래 표는 각 카테코리별 연산자 및 그 샘플을 예시한 것이다.

연산자 타입 연산자 예제
수식 연산자 +, -, *, /, % int a = (x + y - z) * (b / c) % d;
할당 연산자 =, +=, -=, *=, /=, %= int a = 100;
sum += a;
[설명] sum += a 는 sum = sum + a 를 축약한 표현이다.
증가/감소 연산자 ++, -- int i = 1;
i++;
[설명] i++ 는 i = i + 1 를 축약한 표현이다.
논리 연산자 && (And), || (Or), ! (Not) if ((a > 1 && b < 0)="" ||="" c="=" 1="" ||="">
관계/비교 연산자 <, >, ==, !=, >=, <= if (a <= b)
비트 연산자 & (AND), | (OR), ^ (XOR) byte a=7;
byte b=(a & 3) | 4;
[설명] 비트 연산에서 & 는 둘이 1인 경우만 1이 되고 (예: 1 & 1 = 1), | 는 둘 중에 하나라도 1인 경우 1이 되며, ^ 는 둘 중에 하나만 1 인 경우 1이 된다.
Shift 연산자 >>, << int i=2;
i = i << 5;
[설명] i의 값을 왼쪽으로 5 비트 이동한다. 결과값은 2의 6승 즉 64가 된다.
조건 연산자 ?
?? (C# 3.0 이상만 지원)
int val = (a > b) ? a : b;
[설명] a가 b보다 크면 val에 a 값을 대입하고, 같거나 작으면 b 값을 대입한다
string s = str ?? "(널)";
[설명] 변수 str가 null 이면 "(널)" 이라는 문자열을 s 에 대입한다. null 이 아니면 str의 값을 s 에 대입.



?? 연산자

?? 연산자는 Null-coalescing operator라고 불리우는 특별한 연산자로서 C# 3.0 이상에서 지원하는 연산자이다. ?? 연산자는 ?? 왼쪽 피연산자의 값이 NULL인 경우 ?? 뒤의 피연산자 값을 리턴하고, 아니면 그냥 ?? 앞의 피연산자 값을 리턴한다. ?? 연산자는 왼쪽 피연산자가 NULL이 허용되는 데이타 타입인 경우에만 사용된다. 예를 들어, int 타입은 NULL을 가질 수 없으므로 허용되지 않지만, Nullable<int> 즉 int? 타입은 허용된다.

int? i = null;
i = i ?? 0;

string s = null;
s = s ?? string.Empty;



© csharpstudy.com