是否建议转义关键字,例如@class
本文关键字:例如 @class 关键字 转义 是否 | 更新日期: 2023-09-27 18:00:00
在c#中,您可以使用@languagekeyword
创建与关键字名称相同的变量。
我的问题是,这什么时候有用?什么时候利大于弊?
使用这些语法的一个简单示例是在web应用程序中,您可能需要通过提供类似的对象来为HTML标记设置一些属性
new { @class = "cssClass" }
如果没有这种语法,这是不可能的。
如果您正在编写代码生成框架,并且您的底层模型(例如数据库)可能包含使用关键字的域对象,例如数据库表或名为"event"的字段,则这是最有用的。在这种情况下,您可以转义所有名称,并且不会发生冲突。如果添加了新的关键字,这将使代码生成器向前兼容。
一般情况下:
当你选择自己的名字时,尽量避免。
然而,有时你并不能完全选择自己的名字。例如,当您移植代码时,或者当您围绕用另一种语言编写的代码编写包装器时。在这种情况下,我认为最好坚持使用原始名称,这样API描述仍然与代码匹配,而不是仅仅为了避免与保留的关键字冲突而考虑新名称。
不建议使用与保留关键字冲突的变量名,但有时为了可读性,您可能不希望遵循该规则。
例如:
var duplicates = from item in Items
group item by item.Name into @group
where @group.Count() > 1
select @group;
它有点突出了代码的重要部分。
当您需要使用无法更改的第三方代码时,还会想到其他情况。