Le direttive di processore in C#
Le direttive di processore possono determinare il modo in cui viene eseguito un determinato programma in quanto indicano al compilatore come eseguire il proprio compito definendo generalmente che non è il programma che viene influenzato ma direttamente il codice sorgente. Tramite le direttive è possibile far eseguire o non eseguire una porzione di codice in base alla definizione di un determinato simbolo anch’esso definito per mezzo di una direttiva.
Le direttive sono facilmente riconoscibili tramite la presenza del carattere “#”.
Le direttive maggiormente utilizzate sono:
- #define e #undef;
- #region e #endregion
- #warning e #error
Define e Undefine consentono di definire e eliminare la definizione di un simbolo ad esempio:
#DEFINE DEBUG
#UNDEF DEBUG
In questo caso abbiamo inizialmente definito la direttiva DEBUG e successivamente eliminato la sua dichiarazione ma teoricamente potremmo influenzare il codice in base alla dichiarazione di DEFINE stesso tramite le direttive #IF, #ELSE, #ELIF e #ENDIF, le prime tre direttive hanno la stessa logica di funzionamento di IF, ELSE, ELSE IF mentre ENDIF definisce semplicemente il termine della direttiva #IF. Esempio:
#DEFINE RELEASE
#IF DEBUG
Console.WriteLine("Sei in Debug")
#ELIF RELEASE
Console.WriteLine("Sei in Release")
#ELSE
Console.WriteLine("Non Definito")
#ENDIF
Le direttive #REGION e #ENDREGION alla esclusivamente la funzione di raggruppare delle porzioni di codice, personalmente le trovo molto utili nel caso in cui le righe di codice presenti in un singolo file .cs sono molto elevate, consentendo di dare maggiore ordine al vostro codice.
La direttiva #WARNING genera un messaggio di avviso in fase di compilazione. Come segue
#DEFINE DEBUG
#IF DEBUG
#WARNING attenzione sei in debug
#ENDIF
Infine, la direttiva #ERROR genera un messaggio di errore e interrompe la compilazione del programma. Ad esempio:
#DEFINE DEBUG
#IF DEBUG
#ERROR non puoi eseguire in debug
#ENDIF
In seguito la lista delle direttive in C# 8:
Direttiva | Descrizione |
#define sym | Definisce il simbolo sym |
#undef sym | Elimina la definizione del simbolo sym |
#if sym | Verifica se il simbolo sym è definito |
#else | Definisce un ramo alternativo all’if |
#endif | Identifica la fine di un blocco if |
#elif sym | Combina #else con un ulteriore #if |
#warning msg | Genera un avviso in fase di compilazione |
#error msg | Genera un errore di compilazione |
#pragma warning | Sopprime o ripristina avvisi di compilazione |
#line | Permette di ridefinire numero di linea o nome del file utilizzati da avvisi ed errori di compilazione |
#region nome | Identifica l’inizio di una regione |
#endregion | Identifica la fine della regione iniziata con la precedente direttiva #region |
#nullable enable|disble | Abilita o disabilita il contesto per i tipi riferimento nullable |
LINK UTILI
Altro Su C#: https://www.developersumo.com/c-sharp/
I nostri Corsi: https://www.developersumo.com/corsi/
Pagina Instagram: https://www.instagram.com/developer_sumo/?hl=it
Le nostre App su Play Store: https://play.google.com/store/apps/developer?id=Developer+Sumo