#line (Riferimenti per C#)
Aggiornamento: novembre 2007
#line consente di modificare il numero di riga del compilatore e, facoltativamente, l'output del nome del file per gli errori e gli avvisi. Nell'esempio riportato di seguito viene illustrata la modalità di segnalazione di due avvisi associati a numeri di riga. La direttiva #line 200 impone che il numero di riga sia 200 (anche se il valore predefinito è #7). L'altra riga (#9) segue la normale sequenza come risultato della direttiva #line predefinita.
class MainClass
{
static void Main()
{
#line 200
int i; // CS0168 on line 200
#line default
char c; // CS0168 on line 9
}
}
Note
La direttiva #line può essere utilizzata in un'istruzione automatizzata intermedia nel processo di compilazione. Se, ad esempio, sono state rimosse delle righe dal file del codice sorgente originale e si desidera che il compilatore generi comunque un output basato sulla numerazione originale delle righe del file, è possibile rimuovere le righe e simulare la numerazione originale tramite #line.
La direttiva #line hidden nasconde al debugger le righe successive, in modo che quando lo sviluppatore eseguirà il codice un'istruzione alla volta, verranno eseguite tutte le righe racchiuse tra una direttiva #line hidden e la successiva direttiva #line (supposto che non si tratti di un'altra direttiva #line hidden). Questa opzione può essere utilizzata anche per consentire ad ASP.NET di distinguere il codice definito dall'utente da quello generato dal computer. Sebbene ASP.NET rappresenti il consumer principale di questa funzionalità, è probabile che altri generatori di codice sorgente ne usufruiranno.
Una direttiva #line hidden non influisce sui nomi di file o sui numeri di riga nella segnalazione degli errori. Vale a dire che se viene rilevato un errore in un blocco nascosto, nel compilatore verrà segnalato il nome del file corrente e il numero di riga dell'errore.
La direttiva #line filename specifica il nome del file che si desidera venga visualizzato nell'output del compilatore. Per impostazione predefinita, viene utilizzato il nome effettivo del file del codice sorgente. Il nome del file deve essere racchiuso tra virgolette doppie ("").
I file del codice sorgente possono contenere più direttive #line.
Esempio 1
Nell'esempio che segue viene illustrato come il debugger ignori le righe nascoste nel codice. Durante l'esecuzione dell'esempio, verranno visualizzate tre righe di testo. Tuttavia, quando si imposta un punto di interruzione, come illustrato nell'esempio, e si preme F10 per eseguire il codice un'istruzione alla volta, si noterà che la riga nascosta verrà ignorata. La stessa cosa si verifica anche se si imposta un punto di interruzione in corrispondenza della riga nascosta.
// preprocessor_linehidden.cs
using System;
class MainClass
{
static void Main()
{
Console.WriteLine("Normal line #1."); // Set break point here.
#line hidden
Console.WriteLine("Hidden line.");
#line default
Console.WriteLine("Normal line #2.");
}
}
Vedere anche
Concetti
Riferimenti
Direttive per il preprocessore C#