Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 전처리기 지시문(Preprocessor Directives) 완벽 정리

C# 컴파일러에는 별도의 전처리기(preprocessor)가 존재하지 않지만, 지시문은 마치 전처리기가 있는 것처럼 처리됩니다. C#에서 전처리기 지시문은 주로 조건부 컴파일을 지원하는 데 활용됩니다.

전처리기 지시문은 실제 컴파일이 시작되기 전에 특정 정보를 사전 처리하도록 컴파일러에 지시하는 역할을 합니다.

C#의 주요 전처리기 지시문

다음은 C#에서 사용할 수 있는 전처리기 지시문 목록입니다.

1. #define

심볼(symbol)이라 불리는 문자 시퀀스를 정의합니다.

2. #undef

정의된 심볼을 해제(undefine)할 수 있게 합니다.

3. #if

하나 이상의 심볼을 검사하여 해당 심볼이 참(true)으로 평가되는지 확인합니다.

4. #else

#if와 함께 사용하여 복합 조건부 지시문을 구성할 수 있습니다.

5. #elif

복합 조건부 지시문을 만들 수 있게 해줍니다.

6. #endif

조건부 지시문의 끝을 지정합니다.

7. #line

컴파일러의 줄 번호와 (선택적으로) 오류 및 경고 출력에 표시될 파일 이름을 수정할 수 있습니다.

8. #error

코드의 특정 위치에서 오류를 생성할 수 있습니다.

9. #warning

코드의 특정 위치에서 수준 1(level one) 경고를 생성할 수 있습니다.

10. #region

Visual Studio 코드 편집기의 개요(outlining) 기능을 사용할 때 확장하거나 축소할 수 있는 코드 블록을 지정합니다.

11. #endregion

#region 블록의 끝을 표시합니다.

전처리기 지시문 사용 예제

아래 예제를 통해 C#에서 전처리기 지시문을 실제로 어떻게 사용하는지 살펴보겠습니다.

#define PI
using System;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         #if (PI)
         Console.WriteLine("PI is defined");
         #else
         Console.WriteLine("PI is not defined");
         #endif
         Console.ReadKey();
      }
   }
}

위 예제에서는 #define PI로 PI 심볼을 정의한 후, #if 지시문으로 해당 심볼의 정의 여부를 검사합니다. PI가 정의되어 있으므로 프로그램 실행 시 "PI is defined"라는 메시지가 출력됩니다. 만약 #define PI를 제거하면 #else 블록이 실행되어 "PI is not defined"가 출력됩니다.