我一直在使用一些C#遗留代码,并且看到很多@符号出现在变量名的前面。这意味着什么或做了什么?
目前,我经常在具有未保留名称的通用名称的变量前面看到它。例如:
MyProcedure(@step.LoadInstanceId, @step.ResultCode, @step.StatusCode);
鉴于该步骤不是保留字,是否有理由对其进行转义?
发布于 2008-10-31 19:34:44
这只是一种允许将保留关键字声明为var的方法。
void Foo(int @string)
发布于 2008-10-31 19:38:23
它允许您使用保留字,例如'public‘,作为变量名。
string @public = "foo";
我不建议这样做,因为它会导致不必要的混乱。
发布于 2008-10-31 19:39:17
将@放在字符串前面告诉强制程序不处理在字符串中找到的转义序列。
@-引号的优点是不会处理转义序列,这使得编写完全限定的文件名变得很容易:
@"c:\Docs\Source\a.txt" // rather than "c:\\Docs\\Source\\a.txt"
要在@引号的字符串中包含双引号,请使用双引号:
@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.
@符号的另一个用途是使用恰好是C#关键字的引用(/reference)标识符。有关详细信息,请参阅2.4.2 Identifiers。
https://stackoverflow.com/questions/254669
复制相似问题