C#中的#line processor指令增加了行号

Kav*_*ian 3 c# csc visual-studio visual-studio-2012

#lineC#中的处理器指令将每行的行号增加到文件末尾或直到达到另一个#line处理器指令; 自动增量行号.

那太有趣了!例如:

try
{
#line 110
    act();
    throw new InvalidOperationException();
}
catch (Exception x) { Console.WriteLine(x); }
Run Code Online (Sandbox Code Playgroud)

显示在第111行发生异常(不是110!).

问题:假设#line显示的行号与实际行号不同.例如#line 110,实际上是放在实际的第13行.现在是否有办法取消功能#line并显示实际第23行(而不是120)发生了异常?

注意:我只是想确定我没有遗漏任何东西(或做任何愚蠢的事情).

我在.NET 4.5项目上使用Visual Studio 2012.

SLa*_*aks 7

你正在寻找#line default,它回归到自然线编号.
请参阅文档