Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中转义关键词?_C#_Vb.net_Lambda - Fatal编程技术网

如何在c#中转义关键词?

如何在c#中转义关键词?,c#,vb.net,lambda,C#,Vb.net,Lambda,我想在c中做与下面VB等价的事情# 这将与c中的相同# 问题是class是语言中的一个关键词。但我想用它作为变量名。在VB示例中,您可以使用[]括号来“转义”该关键字,并允许将其用作变量名 有没有办法在C#中做到这一点?用于保留字: @class=>"hello" 您需要向变量名添加@: @阶级 但这是一种非常糟糕的做法。每次将变量命名为关键字时,一只小猫就会死:)您可以在任何关键字前面加上@ 但我不认为这是一种推荐的做法,代码分析肯定会对此抱怨。@Andrew Bezzub,我可以看出

我想在c中做与下面VB等价的事情#

这将与c中的相同#

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

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

用于保留字:

@class=>"hello"

您需要向变量名添加
@

@阶级


但这是一种非常糟糕的做法。每次将变量命名为关键字时,一只小猫就会死:)

您可以在任何关键字前面加上
@


但我不认为这是一种推荐的做法,代码分析肯定会对此抱怨。

@Andrew Bezzub,我可以看出它是如何被视为不好的做法的。但是我需要一个非常特殊的场景,在这里要花很长的时间来解释细节。话虽如此,我还是想听听你们的想法,为什么你们认为这是一种不好的做法。有些作品是关键词,这是有原因的。我能想到这样做的唯一原因是如果您正在编写编译器或某种解析器。然而,为什么拥有一个不是关键字的variablename不是一个选项,有无限多的可能性这样做。即使使用classInstance也比@class好。@Roberto Sebestyen,所有变量都应该有这样的名称,这样任何人都很容易理解每个变量的用途。我认为使用名为“class”的变量并不能说明什么。如果您认为它有用,请告诉我,我在现实项目中没有遇到过这种情况。您可能希望使用此功能的另一个原因是:假设您定义自己的领域特定语言,然后编写一个翻译程序,将DSL翻译成C#,而不是编写自己的编译器。DSL的保留字可能不是C#的保留字;DSL的用户可能合理地希望创建一个名为“class”或“event”的属性。如果您的代码生成器生成@class或@event,那么您不必制定更复杂的方案来编码从DSL到C#的转换。在不详细介绍的情况下,我实际上正在研究从强类型C#代码生成HTML、CSS和Javascript。关键字“class”可以是HTML和C#中的关键字,这就是我需要在C#中转义它的原因。
class=>"hello"
@class=>"hello"