English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le istruzioni del preprocessore istruiscono il compilatore a preprocessare le informazioni prima dell'inizio effettivo della compilazione.
Tutte le istruzioni del preprocessore iniziano con #. E su una riga, solo i caratteri di spazi bianchi possono apparire prima dell'istruzione del preprocessore. Le istruzioni del preprocessore non sono istruzioni, quindi non si concludono con un punto e virgola (;).
Il compilatore di C# non ha un preprocessore separato, ma le istruzioni vengono trattate come se ci fosse un preprocessore separato. In C#, le istruzioni del preprocessore vengono utilizzate per l'elaborazione condizionale. A differenza di C e C++, non vengono utilizzate per creare macro. Un'istruzione del preprocessore deve essere l'unica istruzione sulla riga.
La tabella seguente elenca le istruzioni del preprocessore disponibili in C#:
Istruzioni del preprocessore | Descrizione |
---|---|
#define | Usato per definire una serie di caratteri che diventano un simbolo. |
#undef | Usato per cancellare la definizione di un simbolo. |
#if | Usato per testare se un simbolo è vero. |
#else | Usato per creare comandi condizionali complessi, insieme a #if. |
#elif | Usato per creare comandi condizionali complessi. |
#endif | Specificare la fine di un comando condizionale. |
#line | Permette di modificare il numero di riga del compilatore e (opzionalmente) il nome del file di output degli errori e delle avvertenze. |
#error | Permette di generare un errore da una posizione specifica del codice. |
#warning | Permette di generare un avviso di livello 1 dalla posizione specificata nel codice. |
#region | Ti permette di specificare un blocco di codice espandibile o ripiegabile quando utilizzi le caratteristiche dell'anteprima della sintassi di Visual Studio Code Editor. |
#endregion | Identifica la fine del blocco #region. |
#define istruzioni del preprocessore creano costanti simbolo.
#define permette di definire un simbolo, in modo che l'espressione passata all'istruzione #if utilizzi il simbolo come valore. La sua sintassi è la seguente:
#define symbol
Il seguente programma illustra questo punto:
#define PI using System; namespace PreprocessorDAppl { class Program { static void Main(string[] args) { #if (PI) Console.WriteLine("PI è definito"); #else Console.WriteLine("PI non è definito"); #endif Console.ReadKey(); } } }
Quando il codice sopra viene compilato ed eseguito, produrrà i seguenti risultati:
PI è definito
Puoi usare l'istruzione #if per creare un'istruzione condizionale. Le istruzioni condizionali vengono utilizzate per testare se un simbolo è vero. Se è vero, il compilatore eseguirà il codice tra #if e l'istruzione successiva.
Sintassi delle istruzioni condizionali:
#if symbol [operatore simbolo]...
dove:simbolo è il nome del simbolo da testare. Puoi anche usare true e false, o posizionare l'operatore di negazione davanti al simbolo.
Operatori comuni includono:
== (uguale a)
!= (diverso da)
&& (e)
|| (o)
Puoi anche raggruppare simboli e operatori tra parentesi. Le istruzioni condizionali vengono utilizzate per compilare il codice in base alla versione di debug o alla configurazione specificata. Un #if Le istruzioni condizionali iniziano con un #endif Fine istruzione.
Il seguente programma dimostra l'uso delle istruzioni condizionali:
#define DEBUG #define VC_V10 using System; public class TestClass { public static void Main() { #if (DEBUG && !VC_V10) Console.WriteLine("DEBUG è definito"); #elif (!DEBUG && VC_V10) Console.WriteLine("VC_V10 è definito"); #elif (DEBUG && VC_V10) Console.WriteLine("DEBUG e VC_V10 sono definiti"); #else Console.WriteLine("DEBUG e VC_V10 non sono definiti"); #endif Console.ReadKey(); } }
Quando il codice sopra viene compilato ed eseguito, produrrà i seguenti risultati:
DEBUG e VC_V10 sono definiti