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)!