在C#中,变量名之前的@符号是什么意思?

可能重复:
C#中变量名称中@字符的用法/含义是什么?

我知道@符号可以在字符串文字之前使用,以改变编译器解析字符串的方式。 但是,当变量名以@符号为前缀时,这意味着什么?


@符号允许您使用保留字。 例如:

int @class = 15;

以上的作品,当下面不会:

int class = 15;

@符号在C#中有两个用途:

首先,它允许您使用保留关键字作为像这样的变量:

int @int = 15;

第二个选项可让您指定一个字符串而不必转义任何字符。 例如,''字符是一个转义字符,所以通常你需要这样做:

var myString = "c:myfoldermyfile.txt"

或者你可以这样做:

var myString = @"c:myFoldermyfile.txt"

其他答案忘记的重要一点是,“@keyword”被编译为CIL中的“关键字”。

因此,如果你有一个框架,比如F#,它需要你定义一个名为“class”的属性的类,你实际上可以这样做。

这在实践中并不是很有用,但没有防止C#从某种形式的语言交互。

我通常认为它不是用于互操作,而是为了避免关键字限制(通常在局部变量名称上,这是唯一的影响),即。

private void Foo(){
   int @this = 2;
}

但我强烈劝阻! 只要找到其他名称,即使变量的“最佳”名称是保留名称之一。

链接地址: http://www.djcxy.com/p/53855.html

上一篇: What does the @ symbol before a variable name mean in C#?

下一篇: > What does coalescing mean?