当前位置:  开发笔记 > 编程语言 > 正文

将@放在C#变量名前面会做什么?

如何解决《将@放在C#变量名前面会做什么?》经验,为你挑选了4个好方法。

我一直在使用一些C#遗留代码,我在变量名前面看到了很多@符号.这意味着什么或做什么?

目前我在变量前面看到了很多,其中常见名称没有保留.例如:

MyProcedure(@step.LoadInstanceId, @step.ResultCode, @step.StatusCode);

鉴于该步骤不是保留字,是否有任何理由将它们转义?



1> ripper234..:

这只是一种允许将保留关键字声明为变量的方法.

void Foo(int @string)


在正常情况下,没有理智的编码员.什么是一些古怪的情况?基于某些规则集自动生成代码时,不希望对保留字具有特殊情况.
也许他来自VB背景,其中Step真的是一个关键字.
有趣的是,使用变量时不需要使用@可以省略.int @foo = 3; Console.WriteLine(FOO); int bar = 4; Console.WriteLine(@bar);
这是有道理的,但是你能想到为什么人们会把它们放在非关键字变量名称前的任何原因 - 除了原来的开发人员是愚蠢的?

2> 小智..:

它允许您使用保留字,例如"public"作为变量名.

string @public = "foo";

我不建议这样做,因为它可能导致不必要的混淆.



3> Gabe Hollomb..:

将@放在字符串前面告诉计算机不要处理字符串中找到的转义序列.

从文档:

@ -quoting的优点是不处理转义序列,这使得它易于编写,例如,完全限定的文件名:

@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"

要在@ -quoted字符串中包含双引号,请将其加倍:

@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.

@符号的另一个用途是使用恰好是C#关键字的引用(/ reference)标识符.有关更多信息,请参见2.4.2标识符.


变量,而不是字符串文字.
@Orion:是的,它也在最后解释;-)

4> Jacob Carpen..:

这会逃避C#中的保留字.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有