如何使用C#关键字作为属性名称?

Cli*_*mon 57 .net c# asp.net-mvc

使用asp.net MVC我想在视图中执行此操作:

<%= Html.TextBox("textbox1", null, new { class="class1" }) %>
Run Code Online (Sandbox Code Playgroud)

此语句无法编译,因为class是C#中的关键字.我想知道如何逃避属性名称,以便编译.

如果我将"class"属性更改为"Class"(大写C),则可以编译它.但这不合适,因为严格的xhtml说所有属性(和元素)名称必须是小写的.

Sam*_*uel 134

您可以在C#中使用关键字作为标识符,方法是在它们前面添加@ infront.

var @class = new object();
Run Code Online (Sandbox Code Playgroud)

引用CDN上的MSDN文档关键字:

关键字是预定义的保留标识符,对编译器具有特殊含义.它们不能用作程序中的标识符,除非它们包含@作为前缀.例如,@ if是有效的标识符,但如果不是因为if是关键字.

  • +1因为我不知道.但我认为你应该考虑不要这样做,尽可能远离关键词 - 那些关键词(C#,SQL,python,诸如此类).找出你的词库,找到你想说的内容的同义词. (5认同)
  • 对此的一个需求是使用其他语言定义的东西.它们可以有不同的保留字列表,因此在原始语言中完全有效的内容可能在C#中无法访问,反之亦然. (5认同)
  • 实际上,Rob,问题中的例子("类")是"用两种语言定义"(C#和HTML)的好例子. (4认同)