Heim  >  Artikel  >  Backend-Entwicklung  >  [C#-Tutorial] C#-Präprozessoranweisungen

[C#-Tutorial] C#-Präprozessoranweisungen

黄舟
黄舟Original
2016-12-24 13:39:581056Durchsuche

C#-Präprozessoranweisungen

Präprozessoranweisungen weisen den Compiler an, Informationen vorzuverarbeiten, bevor die eigentliche Kompilierung beginnt.

Alle Präprozessoranweisungen beginnen mit #. Und in einer Zeile dürfen vor Präprozessoranweisungen nur Leerzeichen stehen. Präprozessordirektiven sind keine Anweisungen und enden daher nicht mit einem Semikolon (;).

Der C#-Compiler verfügt nicht über einen separaten Präprozessor, Anweisungen werden jedoch so verarbeitet, als ob es einen separaten Präprozessor gäbe. In C# werden Präprozessoranweisungen für die bedingte Kompilierung verwendet. Im Gegensatz zu C- und C++-Direktiven werden sie nicht zum Erstellen von Makros verwendet. Eine Präprozessordirektive muss die einzige Direktive in der Zeile sein.

Liste der C#-Präprozessoranweisungen

Die folgende Tabelle listet die in C# verfügbaren Präprozessoranweisungen auf:

Präprozessoranweisungen

Beschreibung

#define Es wird verwendet, um eine Reihe von Zeichen zu definieren, die zu Symbolen werden.

#undef Es wird verwendet, um die Definition eines Symbols aufzuheben.

#if Wird verwendet, um zu testen, ob das Symbol wahr ist.

#else Wird zum Erstellen zusammengesetzter bedingter Anweisungen verwendet, die zusammen mit #if verwendet werden.

#elif Es wird verwendet, um zusammengesetzte bedingte Anweisungen zu erstellen.

#endif Gibt das Ende einer bedingten Anweisung an.

#line Hier können Sie die Zeilenanzahl des Compilers und (optional) die Dateinamen ändern, in denen Fehler und Warnungen ausgegeben werden.

#error Ermöglicht die Generierung eines Fehlers an einer bestimmten Stelle im Code.

#warning Ermöglicht das Generieren einer Warnung der ersten Ebene an einer bestimmten Stelle im Code.

#region Damit können Sie einen erweiterbaren oder reduzierten Codeblock angeben, wenn Sie die Gliederungsfunktion des Visual Studio-Code-Editors verwenden.

#endregion Es markiert das Ende des #region-Blocks.

#define preprocessor

#define preprocessor-Direktive erstellt symbolische Konstanten.

#define ermöglicht es Ihnen, ein Symbol so zu definieren, dass der Ausdruck „true“ zurückgibt, indem Sie das Symbol als Ausdruck verwenden, der an eine #if-Direktive übergeben wird. Seine Syntax lautet wie folgt:

#define symbol

Das folgende Programm veranschaulicht dies:

#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();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:

PI is defined

Bedingte Direktiven

Sie können die #if-Direktive verwenden, um eine bedingte Direktive zu erstellen. Bedingte Anweisungen werden verwendet, um zu testen, ob ein Symbol wahr ist. Bei „true“ führt der Compiler den Code zwischen #if und der nächsten Anweisung aus.

Die Syntax bedingter Anweisungen:

#if symbol [operator symbol]...

wobei symbol der Name des zu testenden Symbols ist. Sie können auch wahr und falsch verwenden oder den Negationsoperator vor dem Symbol platzieren.

Operatorsymbole sind Operatoren zur Auswertung von Symbolen. Der Dosenoperator kann einer der folgenden Operatoren sein:

== (Gleichheit)

!= (Ungleichheit)

&& (und)

| |. (oder)

Sie können auch Klammern verwenden, um Symbole und Operatoren zu gruppieren. Bedingte Direktiven werden zum Kompilieren von Code in einem Debug-Build oder beim Kompilieren einer angegebenen Konfiguration verwendet. Eine bedingte Direktive, die mit einer #if-Direktive beginnt, muss explizit mit einer #endif-Direktive enden.

Das folgende Programm demonstriert die Verwendung von bedingten Anweisungen:

#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();
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er die folgenden Ergebnisse:

DEBUG and VC_V10 are defined


Das Obige ist der Inhalt des [C#-Tutorials] C#-Präprozessoranweisungen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn