C# 튜토리얼login
C# 튜토리얼
작가:php.cn  업데이트 시간:2022-04-11 14:06:23

C# 전처리기 지시문



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

모든 전처리기 지시문은 #으로 시작합니다. 한 줄의 전처리기 지시문 앞에는 공백 문자만 나타날 수 있습니다. 전처리기 지시문은 명령문이 아니므로 세미콜론(;)으로 끝나지 않습니다.

C# 컴파일러에는 별도의 전처리기가 없지만 명령은 별도의 전처리기가 있는 것처럼 처리됩니다. C#에서는 전처리기 지시문을 사용하여 조건부 컴파일에서 작동합니다. C 및 C++ 지시문과 달리 매크로를 생성하는 데 사용되지 않습니다. 전처리기 지시문은 해당 행의 유일한 지시문이어야 합니다.

C# 전처리기 지시문 목록

다음 표에는 C#에서 사용할 수 있는 전처리기 지시문이 나열되어 있습니다.

전처리기 지시문 Description
#define일련의 문자를 기호로 정의하는 데 사용됩니다. .
#undef기호 정의를 해제하는 데 사용됩니다.
#if기호가 참인지 테스트하는 데 사용됩니다.
#else#if와 함께 사용되는 복합 조건부 명령어를 만드는 데 사용됩니다.
#elif복합 조건부 명령어를 만드는 데 사용됩니다.
#endif 조건부 지시문의 끝을 지정합니다.
#line 컴파일러의 줄 수와 (선택적으로) 오류 및 경고가 출력되는 파일 이름을 수정할 수 있습니다.
#error 코드의 지정된 위치에서 오류를 생성할 수 있습니다.
#warning 코드의 지정된 위치에서 레벨 1 경고를 생성할 수 있습니다.
#regionVisual Studio Code Editor의 개요 기능을 사용할 때 확장 가능하거나 축소된 코드 블록을 지정할 수 있습니다.
#endregion#region 블록의 끝을 표시합니다.

#define 전처리기

#define 전처리기 지시문은 기호 상수를 생성합니다.

#define을 사용하면 #if 지시문에 전달된 표현식으로 기호를 사용하여 표현식이 true를 반환하도록 기호를 정의할 수 있습니다. 구문은 다음과 같습니다.

#define symbol

다음 프로그램에서 이를 보여줍니다.

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

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

PI is defined

조건부 지시문

#if 지시문을 사용하여 A를 생성할 수 있습니다. 조건부 지시어. 조건부 명령어는 기호가 참인지 테스트하는 데 사용됩니다. true인 경우 컴파일러는 #if와 다음 명령어 사이의 코드를 실행합니다.

조건부 지시문의 구문:

#if symbol [operator symbol]...

여기서 symbol은 테스트할 기호의 이름입니다. true 및 false를 사용하거나 기호 앞에 부정 연산자를 배치할 수도 있습니다.

연산자 기호 는 기호를 평가하는 데 사용되는 연산자입니다. can 연산자는 다음 연산자 중 하나일 수 있습니다.

  • ==(평등)

  • !=(불평등)

  • && (and)

  • || (또는)

괄호를 사용하여 기호와 연산자를 그룹화할 수도 있습니다. 조건부 지시문은 디버그 빌드에서 코드를 컴파일하거나 지정된 구성을 컴파일할 때 사용됩니다. #if 지시문으로 시작하는 조건부 지시문은 명시적으로 #endif 지시문으로 끝나야 합니다.

다음 프로그램은 조건부 명령의 사용을 보여줍니다.

#define DEBUG
#define VC_V10
using System;
public class TestClass
{
   public static void Main()
   {

      #if (DEBUG && !VC_V10)
         Console.WriteLine("DEBUG is defined");
      #elif (!DEBUG && VC_V10)
         Console.WriteLine("VC_V10 is defined");
      #elif (DEBUG && VC_V10)
         Console.WriteLine("DEBUG and VC_V10 are defined");
      #else
         Console.WriteLine("DEBUG and VC_V10 are not defined");
      #endif
      Console.ReadKey();
   }
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

DEBUG and VC_V10 are defined

PHP 중국어 웹사이트