이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

C# 연산자

C#은 다양한 연산자(식에서 수행할 연산을 지정하는 기호) 집합을 제공합니다. 정수 형식의 작업(예: ==, !=, <, >, <=, >=, binary +, binary -, ^, &) |, ~, ++, --sizeof()은 일반적으로 열거형에서 허용됩니다. 또한 많은 연산자가 사용자에 의해 오버로드될 수 있으므로 연산자가 사용자 정의 형식에 적용될 때는 의미가 달라질 수 있습니다.

다음 표에서는 C# 연산자를 우선 순위에 따라 그룹화하여 보여 줍니다. 각 그룹 내의 연산자는 우선 순위가 같습니다.

산술 연산자(+, -, *, /)로 인해 관련된 숫자 형식에서 사용할 수 있는 값의 범위를 벗어난 결과가 발생할 수 있습니다. 특정 연산자에 대한 자세한 내용은 해당 연산자에 대한 단원을 참조해야 합니다. 다음은 일반적인 사항입니다.

  • 정수 산술 연산 오버플로는 OverflowException을 throw하거나 결과의 MSB(최상위 비트)를 무시합니다. 정수를 0으로 나누면 항상 DivideByZeroException을 throw합니다.

  • IEEE 754를 기반으로 하는 부동 소수점 형식에는 무한 값과 NaN(Not a Number)을 표현하는 규정이 있기 때문에 부동 소수점 산술 연산 오버플로 또는 0으로 나누기는 예외를 throw하지 않습니다.

  • decimal 산술 연산 오버플로는 항상 OverflowException을 throw합니다. decimal을 0으로 나누면 항상 DivideByZeroException을 throw합니다.

정수 오버플로가 발생할 경우 결과는 실행 컨텍스트(Checked 및 Unchecked)에 따라 다릅니다. checked 상태의 컨텍스트에서는 OverflowException이 throw됩니다. unchecked 상태의 컨텍스트에서는 결과의 MSB(최상위 비트)가 무시되고 계속 실행됩니다. 따라서 C#에서는 오버플로를 처리할 것인지 또는 무시할 것인지를 선택할 수 있습니다.

산술 연산자 이외에도 정수 계열 형식 간의 캐스트(예: longint로 캐스팅)로 인해 오버플로가 발생할 수 있으며 checked 또는 unchecked될 수 있습니다. 그러나 비트 연산자와 시프트 연산자는 오버플로를 일으키지 않습니다.

커뮤니티 추가 항목

추가
표시: