string text = @"我爱""萧蔷""";
string text2 = "我爱\"萧蔷\"";  
Console.WriteLine(text2);
输出结果都是:我爱"萧蔷"
第二句能理解,"符号,被转义了,变成了真正的引号。那第一句怎么理解呢?@符号不是说,其后面的转义按不转义计算吗?后面没有转义的啊?

解决方案 »

  1.   

    用@就不要用转意了
    http://topic.csdn.net/u/20071129/15/CCB7FD94-5663-48F4-B4C0-E261CB782043.html#r_46233136
      

  2.   

    不是这样说的吗?
    如果我想真正得到一个格式的字符串,就把这个字符串原样放在两个双引号之间,并且在最前面加上一个@符号,这样,两个引号之间是什么样格式的字符串,最后得到的就是这个样子的字符串
    比如:
    表示路径
    string path=@"C:\MyDocuments\"
    这样,就能得到C:\MyDocuments\
    那上面的例子,我觉得该这样写啊:
    @"我爱"萧蔷"";  //两个双引号之间是:我爱"萧蔷"
    就得到:我爱"萧蔷"
    为什么不对呢?
    而楼上说的" 就是转义符 "" ,更是不懂,转义不是\开头吗?
      

  3.   

    萧蔷都40多了...ps:这么基础的问题去看MSDN去...双引号是特殊字符,你眼睛看到的跟计算机处理的不一样...
      

  4.   

    如果我想真正得到一个格式的字符串,就把这个字符串原样放在两个双引号之间,并且在最前面加上一个@符号,这样,两个引号之间是什么样格式的字符串,最后得到的就是这个样子的字符串
    -------------------------------这个说法是不完整的,也可以说是错误的。@ 非转义序列 就是会忽略转义符所以 string path=@"C:\MyDocuments\" 中的\ 会被正确输出
      

  5.   

    想输出   我爱"萧蔷" 按照 “如果我想真正得到一个格式的字符串,就把这个字符串原样放在两个双引号之间,并且在最前面加上一个@符号,这样,两个引号之间是什么样格式的字符串,最后得到的就是这个样子的字符串”
    这个说法那可能会这样写 
    string text = @"我爱"萧蔷"";但很明显连语法检查都过不去。