티스토리 뷰


1. 연산자
    1) 연산자(Operator)

C#에서는 변수들을 조작하는 방법으로 연산자(Operator)라는 것을 사용하고있다.
앞에서 사용한 산술 연산자(+, -, *, /) = 배정 연산자도 그들 중 하나이다.
또한 증가 연산자(++)new 같이 피연산자 하나를 사용하는 연산자를 단항 연산자라고 합니다. 피연산자 두 개를 사용하는 연산자를 이항 연산자라고 하고, 건 연산자(?:)는 피연산자 세 개를 사용하며 이는 C#에서 유일한 삼항 연산자라고 부른다.

         a. 다음 단항 연산자 하나와 피연산자(++)가 들어 있다.
증가 연산자 ++는 피연산자 i의 값을 수정합니다.

 i1 = i2++;
i1에 i2가 저장 되고 i2에 1이 증가 하게 되어있다.






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

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# 컴파일러에 지정했기 때문입니다.

사용자 지정 클래스 및 구조체에서 연산자의 동작을 변경할 수 있습니다. 이러한 과정을 연산자 오버로드라고 합니다.

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total
Today
Yesterday