如何使用#line指令指定列?

时间:2012-09-26 21:11:09

标签: c# code-generation dsl

在C#中,您可以在生成的代码中使用#line指令来更改报告错误的方式以及调试的发生方式。

例如,这个剃刀代码:

@model Foo
@{
    var foo = ViewBag.Foo;
}

可以像这样生成一个#line指令:

#line 2 "project\foo.cshtml"
    var foo = ViewBag.Foo;
#line hidden

然而,当两个C#表达式在同一行上时会出现这种情况,例如:

<img width="@width" height="@height" />

生成#line指令,如:

#line 40
width
#line hidden
...
#line 40
height
#line hidden

如何指定列以及行指令?

1 个答案:

答案 0 :(得分:0)

这是我提出的技巧:

用空格填充代码,以便列对齐,所以

<img width="@width" height="@height" />

变为

#line 40
             width
#line hidden
...
#line 40
                             height
#line hidden

此技巧适用于编译器错误和Visual Studio中的调试。