C# - Präprozessordirektiven
Die Präprozessordirektiven weisen den Compiler an, die Informationen vorzuverarbeiten, bevor die eigentliche Kompilierung beginnt.
Alle Präprozessordirektiven beginnen mit #, und vor einer Präprozessordirektive in einer Zeile dürfen nur Leerzeichen stehen. Präprozessordirektiven sind keine Anweisungen, also enden sie nicht mit einem Semikolon (;).
Der C#-Compiler hat keinen separaten Präprozessor; Die Anweisungen werden jedoch so verarbeitet, als ob es eine gäbe. In C# werden die Präprozessordirektiven verwendet, um bei der bedingten Kompilierung zu helfen. Im Gegensatz zu C- und C++-Direktiven werden sie nicht zum Erstellen von Makros verwendet. Eine Präprozessordirektive muss die einzige Anweisung in einer Zeile sein.
Präprozessordirektiven in C#
Die folgende Tabelle listet die in C# verfügbaren Präprozessordirektiven −
aufSr.No. | Präprozessordirektive &Beschreibung |
---|---|
1 | #define Es definiert eine Folge von Zeichen, genannt symbol. |
2 | #undef Damit können Sie die Definition eines Symbols aufheben. |
3 | #wenn Es ermöglicht das Testen eines Symbols oder von Symbolen, um zu sehen, ob sie als wahr ausgewertet werden. |
4 | #else Es erlaubt, zusammen mit #if. eine zusammengesetzte bedingte Direktive zu erstellen |
5 | #elif Es ermöglicht das Erstellen einer zusammengesetzten bedingten Direktive. |
6 | #endif Gibt das Ende einer bedingten Direktive an. |
7 | #line Damit können Sie die Zeilennummer des Compilers und (optional) die Ausgabe des Dateinamens für Fehler und Warnungen ändern. |
8 | #Fehler Es ermöglicht das Generieren eines Fehlers an einer bestimmten Stelle in Ihrem Code. |
9 | #Warnung Es ermöglicht das Generieren einer Warnung der Stufe 1 an einer bestimmten Stelle in Ihrem Code. |
10 | #Region Sie können damit einen Codeblock angeben, den Sie erweitern oder reduzieren können, wenn Sie die Gliederungsfunktion des Visual Studio-Code-Editors verwenden. |
11 | #endregion Er markiert das Ende eines #region-Blocks. |
Der #define Präprozessor
Die Präprozessordirektive #define erstellt symbolische Konstanten.
Mit #define können Sie ein Symbol so definieren, dass der Ausdruck als wahr ausgewertet wird, indem Sie das Symbol als Ausdruck verwenden, der an die #if-Direktive übergeben wird. Seine Syntax ist wie folgt −
#define symbol
Das folgende Programm veranschaulicht dies −
Live-Demo#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 das folgende Ergebnis −
PI is defined
Bedingte Direktiven
Sie können die #if-Direktive verwenden, um eine bedingte Direktive zu erstellen. Bedingte Direktiven sind nützlich, um ein Symbol oder Symbole zu testen, um zu überprüfen, ob sie als wahr ausgewertet werden. Wenn sie als wahr ausgewertet werden, wertet der Compiler den gesamten Code zwischen der #if- und der next-Direktive aus.
Die Syntax für die bedingte Direktive ist −
#if symbol [operator symbol]...
Wo, Symbol ist der Name des Symbols, das Sie testen möchten. Sie können auch true und false verwenden oder dem Symbol den Negationsoperator voranstellen.
Das Bedienersymbol ist der Operator, der zur Auswertung des Symbols verwendet wird. Operatoren könnten einer der folgenden sein:−
- ==(Gleichheit)
- !=(Ungleichheit)
- &&(und)
- || (oder)
Sie können Symbole und Operatoren auch mit Klammern gruppieren. Bedingte Direktiven werden zum Kompilieren von Code für einen Debug-Build oder beim Kompilieren für eine bestimmte Konfiguration verwendet. Eine bedingte Direktive, die mit einem #if beginnt Direktive muss explizit mit einem #endif abgeschlossen werden Richtlinie.
Das folgende Programm demonstriert die Verwendung von bedingten Direktiven −
Live-Demo#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 das folgende Ergebnis −
DEBUG and VC_V10 are defined
C Sprache
- C# Hello World – Ihr erstes C#-Programm
- C#-Schlüsselwörter und Bezeichner
- C#-Variablen und (primitive) Datentypen
- C#-Operatoren
- C# Bitwise- und Bit-Shift-Operatoren
- C# Grundlegende Ein- und Ausgabe
- C#-Ausdrücke, -Anweisungen und -Blöcke (mit Beispielen)
- C#-Kommentare
- C#-switch-Anweisung
- C# ternärer (? :) Operator