#line (Referencia de C#)

Actualización: noviembre 2007

#line permite modificar el número de línea del compilador y (opcionalmente) el nombre del archivo que aparece en los resultados de errores y advertencias del compilador. El ejemplo siguiente muestra cómo notificar dos advertencias asociadas a números de líneas. La directiva #line 200 fuerza que el número de líneas sea 200 (aunque el predeterminado es #7). La otra línea (#9) sigue la secuencia usual como resultado de la directiva #line predeterminada.

class MainClass
{
    static void Main() 
    {
#line 200
        int i;    // CS0168 on line 200
#line default
        char c;   // CS0168 on line 9
    }
}

Comentarios

La directiva #line podría utilizarse en un paso intermedio automatizado del proceso de generación. Por ejemplo, si se quitaron las líneas del archivo de código fuente original, pero aún se desea que el compilador genere unos resultados basados en la numeración de líneas original del archivo, se pueden quitar las líneas y, a continuación, simular la numeración original mediante #line.

La directiva #line hidden oculta las sucesivas líneas del depurador, de manera que cuando el desarrollador avanza por el código, evita cualquier línea que haya entre una directiva #line hidden y la siguiente directiva #line (suponiendo que no haya otra directiva #line hidden). Esta opción también puede utilizarse para permitir a ASP.NET que diferencie entre el código definido por el usuario y el generado por el equipo. Aunque ASP.NET es el primer usuario de esta característica, es probable que más generadores de código fuente hagan uso de ella.

Una directiva #line hidden no afecta ni a los nombres de los archivos ni a los números de líneas en la generación de informes de error. Es decir, si se encuentra un error en un bloque oculto, el compilador informará del nombre del archivo en uso y del número de la línea en que se encuentra el error.

La directiva #line filename especifica el nombre del archivo que debe aparecer en los resultados del compilador. El nombre predeterminado es el nombre real del archivo de código fuente. El nombre de archivo debe aparecer entre comillas dobles ("").

Un archivo de código fuente puede tener cualquier número de directivas #line.

Ejemplo 1

En el ejemplo siguiente se muestra cómo el depurador omite las líneas ocultas en el código. Cuando ejecute el ejemplo, mostrará tres líneas de texto. Sin embargo, cuando establezca un punto de interrupción, como se muestra en el ejemplo, y presione F10 para avanzar por el código, observará que el depurador omite la línea oculta. Observe también que incluso si establece un punto de interrupción en la línea oculta, el depurador seguirá omitiéndola.

// 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.");
    }
}

Vea también

Conceptos

Guía de programación de C#

Referencia

Directivas de preprocesador de C#

Otros recursos

Referencia de C#