如何逃避c#中的关键词?

7wp*_*7wp 9 c# vb.net lambda

我想在c#中做相同的以下VB

Function([class]) "hello"
Run Code Online (Sandbox Code Playgroud)

是在C#与此相同

class=>"hello"
Run Code Online (Sandbox Code Playgroud)

问题是这个词class是语言中的关键词.但我想将它用作变量名.在VB示例中,您可以使用[]括号"转义"该关键字,并允许将其用作变量名.

有没有办法在C#中做到这一点?

And*_*zub 25

您需要添加@到变量名称:

@类

但这是一个非常糟糕的做法.每当你将变量命名为关键字时,小猫就会死掉:)

  • 那些pooooooor小猫! (5认同)
  • 您可能希望使用此功能的另一个原因是:假设您定义了自己的特定于域的语言,然后编写将DSL转换为C#的转换程序,而不是编写自己的编译器.DSL的保留字可能不是C#的保留字; 您的DSL用户可能合理地想要创建名为"class"或"event"的属性.如果您的代码生成器生成@class或@event,那么您不必编写一些更复杂的编码从DSL到C#的转换方案. (5认同)

Dar*_*rov 7

使用@作为保留字:

@class=>"hello"
Run Code Online (Sandbox Code Playgroud)