이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

#if(C# 참조)

C# 컴파일러는 #if 지시문 뒤에 #endif 지시문이 오는 것을 발견할 때 지정한 기호가 정의된 경우에만 지시문 사이의 코드를 컴파일합니다. C 및 C++와 달리, 기호에 숫자 값을 할당할 수는 없습니다. C#의 #if 문은 Boolean이며, 기호가 정의되었는지 여부만 테스트합니다. 다음 예제를 참조하십시오.

#define DEBUG
// ...
#if DEBUG
    Console.WriteLine("Debug version");
#endif

==(같음), !=(같지 않음) 연산자는 true 또는 false를 테스트하는 경우에만 사용할 수 있습니다. True는 기호가 정의되었음을 의미합니다. #if DEBUG 문은 #if (DEBUG == true)와 의미가 같습니다. 연산자를 사용할 수 있습니다 & & (와) | (or), and ! (not) 여러 기호가 정의 되었는지 여부를 평가할 수 있습니다. 괄호를 사용하여 기호와 연산자를 그룹화할 수도 있습니다.

#if 와 함께 #else, #elif, #endif, #define#undef 지시문을 사용하면 하나 이상의 기호가 있는지 여부에 따라 코드를 포함하거나 제외할 수 있습니다. 이것은 코드를 디버그 빌드용으로 컴파일하거나 특정 구성용으로 컴파일할 때 유용할 수 있습니다.

#if 지시문으로 시작한 조건부 지시문은 명시적으로 #endif 지시문으로 종료해야 합니다.

#define 을 사용하면 기호를 정의할 수 있습니다. 이때 정의한 기호를 #if 지시문에 전달되는 식으로 사용하면 식이 true가 됩니다.

또한 /define 컴파일러 옵션으로 기호를 정의할 수도 있습니다. 또한 #undef로 기호를 정의하지 않을 수도 있습니다.

/define 또는 #define으로 정의한 기호는 같은 이름의 변수와 충돌하지 않습니다. 즉, 변수 이름을 전처리기 지시문에 전달해서는 안 되며 기호는 전처리기 지시문으로만 계산할 수 있습니다.

#define 으로 만든 기호의 범위는 해당 기호가 정의된 파일입니다.

// preprocessor_if.cs
#define DEBUG 
#define MYTEST
using System;
public class MyClass 
{
    static void Main() 
    {
#if (DEBUG && !MYTEST)
        Console.WriteLine("DEBUG is defined");
#elif (!DEBUG && MYTEST)
        Console.WriteLine("MYTEST is defined");
#elif (DEBUG && MYTEST)
        Console.WriteLine("DEBUG and MYTEST are defined");
#else
        Console.WriteLine("DEBUG and MYTEST are not defined");
#endif
    }
}
DEBUG 및 MYTEST가 정의되어 있음

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft