private  string dataInfo = @""
这样定义一个字符串为什么前面有个@这个符号啊?

解决方案 »

  1.   

    @后面的字符串不进行转义.好像是这样比如:
    private string dataInfo = "hhh\"dd" ; //定义字符串 hhh"dd

    private string dataInfo = @"hh""dd" ;
      

  2.   

    查SDK,有如下解释:C# 支持两种形式的字符串:规则字符串和逐字字符串。规则字符串由包含在双引号中的零个或多个字符组成(如 "hello"),并且可以包含简单转义序列(如表示制表符的 \t)、十六进制转义序列和 Unicode 转义序列。逐字字符串由 @ 字符后跟开始的双引号字符、零个或多个字符以及结束的双引号字符组成。一个简单的示例就是 @"hello"。在逐字字符串中,分隔符之间的字符逐字解释,唯一的例外是“引号转义序列”。具体说来,在逐字字符串中不处理简单转义序列以及十六进制和 Unicode 转义序列。逐字字符串可以跨多行。 
      

  3.   


    string a = @"c:\foldername";等同于string a = "c:\\foldername";
      

  4.   

    摘自MSDN:用 @ 引起来的字符串以 @ 开头,并用双引号引起来。例如:@"good morning"  // a string literal
    用 @ 引起来的优点在于换码序列“不”被处理,这样就可以轻松写出字符串,例如一个完全限定的文件名:@"c:\Docs\Source\a.txt"  // rather than "c:\\Docs\\Source\\a.txt"
    若要在一个用 @ 引起来的字符串中包括一个双引号,请使用两对双引号:@"""Ahoy!"" cried the captain." // "Ahoy!" cried the captain.
    @ 符号的另一种用法是使用碰巧成为 C# 关键字的被引用的 (/reference) 标识符