Latest web development tutorials

Dyrektywy preprocesora C #

Poinstruować preprocesora kompilatora przed faktycznym rozpoczęciem kompilacji wstępnej obróbki informacji.

Wszystkie dyrektywy preprocesora zaczynają się od znaku #. I w jednej linii, tylko puste znaki mogą pojawić się przed dyrektywy preprocesora. Preprocesor dyrektywa nie jest stwierdzenie, więc nie są one średnik (;) end.

Kompilator C # nie posiada oddzielnego pre-procesor, jednak chciałby mieć oddzielny preprocesora w instrukcji jest przetwarzane. W języku C #, dyrektywy preprocesora do pracy warunkowej kompilacji. C i C ++ nie mają różnych instrukcji, nie są one wykorzystywane do tworzenia makra. Dyrektywa preprocesora muszą być jedynym instruktorem na tej linii.

C # lista dyrektyw preprocesora

Poniższa tabela zawiera wykaz dyrektyw preprocesora C # dostępne są:

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

#define preprocesor

dyrektywa preprocesora #define tworzy stałych symbolicznych.

#define umożliwia zdefiniowanie symbolu tak, że poprzez użycie symbolu jest przekazywana do wyrażenia dyrektywy #if jako wyrażenie zwraca wartość true. Jego składnia jest następująca:

#define symbol

Następujący program ilustruje tę kwestię:

#define PI 
using System;
PreprocessorDAppl przestrzeni nazw
{
   Program klasy
   {
      static void Main (string [] args)
      {
         #if (PI)
            Console.WriteLine ( "PI zdefiniowano");
         #else
            Console.WriteLine ( "PI nie jest zdefiniowana");
         #endif
         Console.ReadKey ();
      }
   }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

PI zdefiniowano

instrukcje warunkowe

Można użyć dyrektywy #if stworzyć instrukcję warunkową. Instrukcje warunkowe do testowania, czy symbol jest prawdą. Jeśli to prawda, kompilator wykona kod między #if i następnej instrukcji.

Instrukcja warunkowa składni:

#if symbol [symbol operatora] ...

W którymsymbol jest nazwą symboliczną być testowane. Można również skorzystać z prawdą i fałszem, lub symbol umieszczony przed operatorem negacji.

Operator symbolesą wykorzystywane do oceny symbol operatora. Operator może być jednym z następujących operatorów:

  • == (Równość)
  • ! = (Nierówność)
  • && (I)
  • || (Or)

Można również użyć nawiasów symboli i operatorów grupowych. Warunkowe instrukcja w wersji debugowania lub skompilować określonej konfiguracji skompilowany kod. Warunkowe instrukcje począwszyod dyrektywy #if,musi być umieszczona w instrukcji#endifjest zakończone.

Następujący program przedstawia użycie instrukcji warunkowych:

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

      #if (DEBUG &&! VC_V10)
         Console.WriteLine ( "DEBUG jest zdefiniowany");
      (DEBUG! && VC_V10) #elif
         Console.WriteLine ( "VC_V10 definiuje");
      #elif (DEBUG && VC_V10)
         Console.WriteLine ( "DEBUG i VC_V10 są zdefiniowane");
      #else
         Console.WriteLine ( "DEBUG i VC_V10 nie są zdefiniowane");
      #endif
      Console.ReadKey ();
   }
}

Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:

Debugowania i VC_V10 są zdefiniowane