在C#中,variables名之前的@符号是什么意思?
可能重复:
C#中variables名中@字符的用法/含义是什么?
我知道@符号可以在string之前使用,以改变编译器parsingstring的方式。 但是当variables名以@符号为前缀时,这意味着什么?
@符号允许您使用保留字。 例如:
int @class = 15;
以上的作品,当下面不会:
int class = 15;
@符号在C#中有两个用途:
首先,它允许您使用保留的关键字作为这样的variables:
int @int = 15;
第二个选项可以让你指定一个string而不必转义任何字符。 例如,'\'字符是一个转义字符,所以通常你需要这样做:
var myString = "c:\\myfolder\\myfile.txt"
或者你可以这样做:
var myString = @"c:\myFolder\myfile.txt"
其他答案忘记的重要一点是,“@keyword”被编译成CIL中的“keyword”。
所以如果你有一个F#的框架,你需要用一个名为“class”的属性来定义一个类,你可以这样做。
这在实践中并不是很有用,但是不会阻止C#从某种forms的语言交互。
我通常看到它不是用于互操作,而是为了避免关键字限制(通常在局部variables名称,这是唯一的影响),即。
private void Foo(){ int @this = 2; }
但我强烈劝阻! 只要find其他名称,即使variables的“最佳”名称是保留名称之一。
它允许您使用C#关键字作为variables。 例如:
class MyClass { public string name { get; set; } public string @class { get; set; } }