C#关键字作为变量

Ice*_*ind 39 c#

在VB.NET中,您可以用括号括起变量名,并使用关键字作为变量名,如下所示:

Dim [goto] As String = ""
Run Code Online (Sandbox Code Playgroud)

这样做是否有C#等价?

Dou*_*rch 85

string @string = "";
Run Code Online (Sandbox Code Playgroud)

  • @Daneil:这可能是不好的做法,但这是一个非常好的答案. (34认同)
  • 这是baaad练习恕我直言.变量名称应该是描述性的.@string不具有描述性. (7认同)
  • @前缀的目的是允许与其他.NET语言的互操作性,请参阅http://stackoverflow.com/questions/724912/does-the-prefix-for-delegates-have-any-special-meaning/724951# 724951 (5认同)
  • divo:同样,与以前版本的C#编译的程序集的兼容性,因为新的关键字一直被引入. (3认同)
  • @DrJokepu实际上没有添加新的保留关键字,只有上下文关键字.所以声明如"var var = 15;" 在没有@的情况下有效.这似乎是故意做的,以避免向后兼容性问题.http://blogs.msdn.com/ericlippert/archive/2009/05/11/reserved-and-contextual-keywords.aspx (3认同)

ang*_*son 18

是的,前缀为@

String @goto = "";
Run Code Online (Sandbox Code Playgroud)


and*_*eer 9

使用@符号为变量添加前缀

string @class = "fred";
Run Code Online (Sandbox Code Playgroud)

@符号也可用于为非转义字符串文字添加前缀:

string a = "fred\"; \\ invalid
string b = @"fred\"; \\ valid. the backslash is part of the literal 'fred\'
Run Code Online (Sandbox Code Playgroud)

我不时使用后者,但认为使用@符号命名变量是丑陋的.