#line (Référence C#)
Mise à jour : novembre 2007
#line vous permet de modifier le numéro de ligne du compilateur et (de manière facultative) la sortie du nom du fichier d'erreurs et d'avertissements. Cet exemple montre comment signaler deux avertissements associés à des numéros de lignes. La directive #line 200 impose la valeur 200 au numéro de ligne (bien que la valeur par défaut soit #7). L'autre ligne (#9) suit la séquence habituelle en tant que résultat de la directive #line par défaut.
class MainClass
{
static void Main()
{
#line 200
int i; // CS0168 on line 200
#line default
char c; // CS0168 on line 9
}
}
Notes
La directive #line peut être utilisée dans une étape intermédiaire automatisée dans le processus de génération. Par exemple, si des lignes sont supprimées du fichier de code source d'origine, mais que vous souhaitez que le compilateur génère des résultats fondés sur la numérotation des lignes d'origine dans le fichier, vous pouvez supprimer des lignes et simuler ensuite la numérotation des lignes d'origine à l'aide de #line.
La directive #line hidden masque les lignes suivantes du débogueur, de sorte que lorsque le développeur parcourt le code, toutes les lignes comprises entre #line hidden et la directive #line suivante (en considérant qu'il ne s'agit pas d'une autre directive #line hidden) sont ignorées. Cette option peut aussi être utilisée pour permettre à ASP.NET de différencier du code défini par l'utilisateur de code généré par l'ordinateur. Même si ASP.NET représente le consommateur principal de cette fonctionnalité, il est probable que d'autres générateurs sources l'utiliseront.
Une directive #line hidden n'affecte pas les noms de fichiers ni les numéros de lignes dans les rapports d'erreurs. Ainsi, si une erreur est rencontrée dans un bloc masqué, le compilateur signale le nom du fichier en cours et le numéro de ligne de l'erreur.
La directive #line filename spécifie le nom de fichier que vous voulez faire apparaître dans le résultat de la compilation. Par défaut, le nom réel du fichier de code source est utilisé. Le nom du fichier doit être entre guillemets droits ("").
Un fichier de code source peut contenir un nombre quelconque de directives #line.
Exemple 1
Cet exemple montre comment le débogueur ignore les lignes masquées dans le code. Lorsque vous exécutez l'exemple, trois lignes de texte sont affichées. Toutefois, lorsque vous définissez un point de rupture, comme illustré dans cet exemple, et appuyez sur F10 pour progresser dans le code, vous remarquez que le débogueur ignore la ligne masquée. Notez aussi que même si vous définissez un point de rupture sur la ligne masquée, le débogueur l'ignore.
// 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.");
}
}
Voir aussi
Concepts
Référence
Directives de préprocesseur C#