연산자(C# 프로그래밍 가이드)

업데이트: 2008년 7월

C#에서 연산자는 피연산자라는 하나 이상의 식을 입력으로 사용하고 값을 반환하는 기호 또는 용어입니다. 증가 연산자(++)나 new 같이 피연산자 하나를 사용하는 연산자를 단항 연산자라고 합니다. 산술 연산자(+, -, *, /) 같이 피연산자 두 개를 사용하는 연산자를 이항 연산자라고 합니다. 조건 연산자(?:)는 피연산자 세 개를 사용하며 이는 C#에서 유일한 삼항 연산자입니다.

다음 C# 문에는 단항 연산자 하나와 피연산자 하나가 들어 있습니다. 증가 연산자 ++는 피연산자 y의 값을 수정합니다.

y++;

다음 C# 문에는 이항 연산자가 두 개 있습니다. 각 연산자는 피연산자를 두 개씩 사용합니다. 할당 연산자 =에는 정수 y와 식 2 + 3이 피연산자로 사용됩니다. 식 2 + 3 자체에도 정수 값 2와 3을 피연산자로 사용하는 더하기 연산자가 들어 있습니다.

y = 2 + 3;

피연산자는 유효한 식이거나 다른 연산으로 구성될 수 있는데 이때 식의 크기나 연산의 수에는 제한이 없습니다. 식을 계산할 때 컴파일러는 먼저 왼쪽에서 오른쪽으로 모든 피연산자를 계산합니다. 모든 피연산자를 계산한 후에는 연산자 우선 순위라는 특정 순서에 따라 연산자를 계산합니다. 다음 표에서는 연산자를 각각 수행하는 연산의 종류에 따라 범주별로 구분하여 보여 줍니다. 이 범주는 우선 순위에 따라 나열되어 있습니다.

기본 연산자

설명

x.y

멤버 액세스 연산자

f(x)

메서드 및 대리자 호출

a[x]

배열 및 인덱서 액세스

x++

후위 증가

x--

후위 감소

new T(...)

개체 및 대리자 생성

new T(...){...}

이니셜라이저를 사용한 개체 생성. 개체 및 컬렉션 이니셜라이저(C# 프로그래밍 가이드)를 참조하십시오.

new {...}

익명 개체 이니셜라이저. 익명 형식(C# 프로그래밍 가이드)을 참조하십시오.

new T[...]

배열 생성. 배열(C# 프로그래밍 가이드)을 참조하십시오.

typeof(T)

T에 대한 System.Type 개체 가져오기

checked(x)

checked 컨텍스트에서 식 계산

unchecked(x)

unchecked 컨텍스트에서 식 계산

default (T)

T 형식의 기본값 가져오기

delegate {}

익명 함수(익명 메서드)

단항 연산자

설명

+x

ID

-x

부정 연산

!x

논리 부정 연산

~x

비트 부정 연산

++x

전위 증가

--x

전위 감소

(T)x

x를 형식 T 형식으로 명시적 변환

승제 연산자

설명

*

곱하기

/

나누기

%

나머지

가감 연산자

설명

x + y

더하기, 문자열 연결, 대리자 결합

x - y

빼기, 대리자 제거

시프트 연산자

설명

x << y

왼쪽 시프트

x >> y

오른쪽 시프트

관계 및 형식 연산자

설명

x < y

보다 작음

x > y

보다 큼

x <= y

작거나 같음

x >= y

크거나 같음

x is T

x가 T이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

x as T

T로 형식화된 x 또는 null(x를 T로 형식화할 수 없는 경우)을 반환합니다.

같음 연산자

설명

x == y

같음

x != y

같지 않음

할당 및 익명 연산자

설명

=

할당 연산자

x op= y

다음 연산자를 지원하는 복합 할당: +=, -=, *=, /=, %=, &=, |=, !=, <<=, >>=

(T x) => y

익명 함수(람다 식)

논리, 조건 및 null 연산자

범주

설명

논리곱

x & y

정수 비트 AND, Boolean 논리 AND

논리 XOR 연산자

x ^ y

정수 비트 XOR, Boolean 논리 XOR

논리합

x | y

정수 비트 OR, Boolean 논리 OR

조건부 논리곱 연산자

x && y

x가 true인 경우에만 y를 계산합니다.

조건부 논리합 연산자

x || y

x가 false인 경우에만 y를 계산합니다.

Null 결합

X ?? y

x가 null인 경우 y로 계산하고, 그렇지 않으면 x로 계산합니다.

조건

x ?: y : z

x가 true이면 y로 계산되고 x가 false이면 z로 계산됩니다.

우선 순위가 동일한 연산자 두 개가 식 하나에 있으면 두 연산자의 결합성에 따라 연산 순서가 결정됩니다. 왼쪽 결합성이 있는 연산자는 왼쪽에서 오른쪽으로 계산됩니다. 예를 들어, x * y / z는 (x * y) / z와 같이 계산됩니다. 오른쪽 결합성이 있는 연산자는 오른쪽에서 왼쪽으로 계산됩니다. 오른쪽 결합성이 있는 연산자로는 할당 연산자와 삼항 연산자(?:)가 있습니다. 다른 모든 이항 연산자에는 왼쪽 결합성이 있습니다.

식의 앞뒤에 괄호를 사용하면 해당 식을 다른 식보다 먼저 계산하도록 지정할 수 있습니다. 예를 들어 2 + 3 * 2의 결과는 일반적으로 8입니다. 이는 승제 연산자의 우선 순위가 가감 연산자보다 높기 때문입니다. 이 식을 (2 + 3) * 2와 같이 작성하면 그 결과가 10이 됩니다. 이 경우 괄호를 사용하여 가감 연산자(+)를 승제 연산자(*)보다 먼저 계산하도록 C# 컴파일러에 지정했기 때문입니다.

사용자 지정 클래스 및 구조체에서 연산자의 동작을 변경할 수 있습니다. 이러한 과정을 연산자 오버로드라고 합니다. 자세한 내용은 오버로드할 수 있는 연산자(C# 프로그래밍 가이드)를 참조하십시오.

관련 단원

자세한 내용은 연산자 키워드(C# 참조)C# 연산자를 참조하십시오.

참고 항목

개념

C# 프로그래밍 가이드

참조

문, 식, 연산자(C# 프로그래밍 가이드)

변경 기록

날짜

변경 내용

이유

2008년 7월

정의되지 않은 출력에 대한 잘못된 내용이 제거되었습니다.

향상된 기능 관련 정보