ECMA-334 C# Language Specification9.5.7: Line directives |
Line directives may be used to alter the line numbers and source file names that are reported by the compiler in output such as warnings and errors.
whitespace
opt #
whitespace
opt line
whitespace
line-indicator
pp-new-line
decimal-digits
whitespace
file-name
decimal-digits
default
"
file-name-characters
"
file-name-character
file-name-characters
file-name-character
new-line
When no #line
directives are present, the compiler reports true line numbers and source file names in its output. When processing a #line
directive that includes a line-indicator
that is not default, the compiler treats the line after the directive as having the given line number (and file name, if specified).
A #line
default directive reverses the effect of all preceding #line
directives. The compiler reports true line information for subsequent lines, precisely as if no #line
directives had been processed.
file-name
differs from a regular string literal in that escape characters are not processed; the '\' character simply designates an ordinary back-slash character within a file-name
. end note]