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

时间:2013-05-10 14:33:59

标签: c# visual-studio visual-studio-2012 csc

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

那很有意思!例如:

try
{
#line 110
    act();
    throw new InvalidOperationException();
}
catch (Exception x) { Console.WriteLine(x); }

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

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

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

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

2 个答案:

答案 0 :(得分:7)

您正在寻找#line default,它会恢复自然行号 请参阅documentation

答案 1 :(得分:0)

#line N指令设置实线和虚拟N线之间的差异。要使用#line default恢复实线计数。