日期:2014-05-17  浏览次数:20784 次

c#中@为什么能带来便利
 在 C#  规范中, @  可以作为标识符(类名、变量名、方法名等)的第一个字符,以允许C# 中保留关键字作为自己定义的标识符。

class @class
{
   public static void @static(bool @bool) {
      if (@bool)
         System.Console.WriteLine("true");
      else
         System.Console.WriteLine("false");
   }   
}
class Class1
{
   static void M() {
      cl\u0061ss.st\u0061tic(true);
   }
}


注意,@ 虽然出现在标识符中,但不作为标识符本身的一部分。
因此,以上示例,定义了一个名为 class 的类,并包含一个名为 static 的方法,以及一个参数名为了 bool 的形参。

这样,对于跨语言的移植带来了便利。因为,某个单词在 C#  中作为保留关键字,但是在其他语言中也许不是。

"对于跨语言的移植带来了便利。"能否举例说明?
C# #

------解决方案--------------------
引用:
 因为,某个单词在 C#  中作为保留关键字,但是在其他语言中也许不是。

后面不是已经说明了吗
------解决方案--------------------
也许不是,你说的是也许,你看看那个开放软件没有共同的,我们也学习学习
------解决方案--------------------
在代码较多的情况下(不容易找到变量声明),容易辨别类型(看到@bool就意识到这个变量是bool类型什么的而不用麻烦的去找它的根源)……大概是这样,供参考
------解决方案--------------------
模板可编译的代码生成器fastCSharp利用@标识模板变量。
------解决方案--------------------
引用:
 这样,对于跨语言的移植带来了便利。因为,某个单词在 C#  中作为保留关键字,但是在其他语言中也许不是。

"对于跨语言的移植带来了便利。"能否举例说明?

你随便简单匹配一下呗。例如说:因为,单词static在 C#  中作为保留关键字,但是在其他语言中也许不是。

     
------解决方案--------------------
是么,我写了几十万行代码,都回忆不起来什么时候非得和关键字冲突一下的场景。

lz觉得有用,我反倒问一句,你是做什么特种行业的?
------解决方案--------------------
我只在写字符串为了减少转义而@
------解决方案--------------------
我不喜欢换行所以用@
------解决方案--------------------
我觉得有时候很方便,特别是单词量不多时候,确实有被预留关键字所困。但是@这个符号看着有点别扭
------解决方案--------------------
这么些反倒让人觉得奇怪,看起不就好看,还别说用。既然不同语言可能不一样,况且我们对变量命名尽量不要和关键字重复,LZ又何必去使用了