Home / Programmazione / C# - Asp.NET / Le direttive del preprocessore in C#
Mattepuffo

Le direttive del preprocessore in C#

Le direttive del preprocessore in C#

Le direttive del preprocessore sono comandi che non vengono mai convertiti in altri comandi, ma che influiscono comunque su alcuni aspetti della compilazione.

E' utile, ad esempio, usare queste direttive quando non si vuole che alcuni parti del programma non vengano compilate perchè alcune funzioni saranno usufruibili solo in una versione a pagamento.

Ovviamente è solo un esempio, ma rende un pò l'idea della loro utilità.

Tutte le direttive cominciano con il segno #.

Vediamo quali sono.

#define e #undef

E' usato in questo modo:

#define DIR

Serve per dire al copilatore che esiste un simbolo con il nome sepcificato (che in questo caso è DIR).

Possiamo paragonarla a una variabile, solo che non dispone di un valore.

#undef esegue l'operazione opposta:

#undef DIR

Queste direttive devono essere inserite all'inizio del sorgente.

Si capisce che da sole servono a poco, ma solo molto utili in combinazione con altre direttive.

 

#if, #elif, #else e #endif

Queste direttive sono condizionali e indicano al compilatore se compilare o meno un blocco.

E' qui che può entrare in gioco #define.

#define DIR

 

#if DIR

   // operazioni

#elif DIR2

   // operazioni 2

#else

   // operazioni comuni

#endif

Non essendoci DIR2 operazioni comuni non verranno compilate.

Ovviamente si possono anche fare #if annidati.

#warning e #error

Servono per generare un avviso.

L'avviso corrisponde a tutto ciò che c'è dopo la direttiva:

#warning "Ricordati di cancellare questa riga e i vari punti di debug"

#region e #endregion

Servono per indicare che uno specifico blocco di codice deve essere trattato come un singolo specifico blocco.

La funzione è utile per tenere pulito il codice nella pagina:

#region

   int x = 10;

   int y = 20;

   Console.WriteLine(x + y);

#endregion

Ad ogni #region deve corrispondere un #endregion.

#line

Può essere usata per cambiare il nome e il numero di riga visualizzati dal cimpilatore nei messaggi di avviso e errore.

E' utile nei casi in cui in fase di scrittura si usano anche altri pacchetti che modificano il codice digitato prima di inviarlo al compilatore.

#line 130 MyProgram.cs // questa sarà la riga 130 nel file MyProgram.cs prima che il pacchetto intermedio apporti modifiche

// .....

#line defualt

L'ultima riga ripristina la numerazione corretta.

#pragma

Consente di eliminare o ripristinare avvisi specifici del compilatore.