猿问

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

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

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



郎朗坤
浏览 1566回答 3
3回答

aluckdog

@符号允许您使用保留字。例如:int @class = 15;在以下情况下,上述方法是有效的:int class = 15;

摇曳的蔷薇

@符号在C#中有两个用途:首先,它允许您使用保留关键字作为如下变量:int @int = 15;第二个选项允许您指定字符串,而不必转义任何字符。例如,“\”字符是转义字符,因此通常需要这样做:var myString = "c:\\myfolder\\myfile.txt"或者你也可以这样做:var myString = @"c:\myFolder\myfile.txt"

交互式爱情

其他答案忘记的重要一点是,“@关键字”在CIL中被编译为“关键字”。因此,如果您有一个框架,比如F#,它要求您定义一个具有一个名为“class”的属性的类,那么您实际上可以这样做。不是那,那个在实践中很有用,但没有它会防止C#出现某种形式的语言互操作。我通常看到它不是用于互操作,而是为了避免关键字限制(通常用于局部变量名称,这是只效果)(private void Foo(){    int @this = 2;}但我强烈反对!只需查找另一个名称,即使变量的“最佳”名称是保留名称之一。
随时随地看视频慕课网APP
我要回答