在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#?