Latest web development tutorials

C # 전 처리기 지시문

정보 전처리를 컴파일 실제 시작하기 전에 컴파일러 전처리 지시합니다.

모든 처리기 지시문은 #로 시작된다. 그리고 한 줄에 만 공백 문자는 처리기 지시문 전에 나타날 수 있습니다. 전 처리기 지시어는 문이 아닌, 그래서 그들은 세미콜론되지 않습니다 (;) 끝.

C # 컴파일러는, 그러나, 별도의 프리 프로세서가 명령이 처리 될 때 별도의 전처리을 가지고 좋아하지 않는다. C #에서, 조건부 컴파일 작업에 대한 처리기 지시문. C 및 C ++은 매크로를 작성하는 데 사용되지 않고, 다른 지시 사항이 없다. 전 처리기 지시어는 그 라인에있는 유일한 명령해야합니다.

C # 전 처리기 지시문 목록

다음 표는 C # 전 처리기 지시문을 사용할 수 있습니다 보여줍니다

预处理器指令描述
#define它用于定义一系列成为符号的字符。
#undef它用于取消定义符号。
#if它用于测试符号是否为真。
#else它用于创建复合条件指令,与 #if 一起使用。
#elif它用于创建复合条件指令。
#endif指定一个条件指令的结束。
#line它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
#error它允许从代码的指定位置生成一个错误。
#warning它允许从代码的指定位置生成一级警告。
#region它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。
#endregion它标识着 #region 块的结束。

#DEFINE 전처리

#DEFINE 처리기 지시문은 기호 상수를 작성합니다.

#DEFINE는 표현식이 true를 반환과 기호의 사용을 통해의 #if 지시문 식에 전달, 있도록, 심볼을 정의 할 수 있습니다. 다음과 같이 그 구문은 다음과 같습니다

#DEFINE 기호

다음 프로그램은이 점을 보여

#DEFINE PI 
시스템을 이용하여;
네임 스페이스 PreprocessorDAppl
{
   클래스 프로그램
   {
      정적 무효 메인 (문자열 []에 인수)
      {
         의 #if (PI)
            Console.WriteLine (이하 "PI 정의한다");
         #else
            Console.WriteLine ( "PI는 정의되어 있지 않습니다");
         #endif 다음
         Console.ReadKey ();
      }
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

PI는 정의

조건부 지침

당신은 조건부 명령을 만들 수의 #if 지시문을 사용할 수 있습니다. 심볼이 사실인지 여부를 테스트하기위한 조건부 지침을 제공합니다. true의 경우, 컴파일러의 #if과 다음 명령 사이의 코드를 실행합니다.

조건부 명령 구문 :

의 #if 기호 [연산자 기호] ...

상기심볼은 테스트 될 기호 이름이다. 또한 사실과 거짓 사용하거나 기호가 부정 연산자 앞에 배치됩니다.

조작 기호조작 심볼을 평가하기 위해 사용된다. 운영자는 다음 연산자 중 하나가 될 수 있습니다 :

  • == (평등)
  • ! = (불평등)
  • && (그리고)
  • || (OR)

또한 그룹 기호 및 연산자에 괄호를 사용할 수 있습니다. 디버깅 버전에서 조건부 명령 또는 지정된 구성 컴파일 된 코드를 컴파일합니다.의 #if 지시어로 시작하는 조건부 명령이하는 #endif 다음 명령에표시되어야 종료한다.

다음 프로그램은 조건부 명령어를 사용하는 방법을 보여줍니다 :

#DEFINE DEBUG
#DEFINE VC_V10
시스템을 이용하여;
공용 클래스의 TestClass
{
   공공 정적 무효 메인 ()
   {

      의 #if (DEBUG &&! VC_V10)
         Console.WriteLine는 ( "DEBUG가 정의되어 있습니다");
      #elif (! DEBUG && VC_V10)
         Console.WriteLine (이하 "VC_V10 정의됩니다");
      #elif (DEBUG && VC_V10)
         Console.WriteLine ( "DEBUG와 VC_V10가 정의되어 있습니다");
      #else
         Console.WriteLine ( "DEBUG와 VC_V10이 정의되지 않은");
      #endif 다음
      Console.ReadKey ();
   }
}

상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를

DEBUG 및 VC_V10 정의된다