【问题标题】:What does the @ prefix do on string literals in C#@前缀对C#中的字符串文字有什么作用
【发布时间】:2011-09-02 08:03:18
【问题描述】:

我阅读了一些 C# 文章以使用 Path.Combine(part1,part2) 组合路径。

它使用以下内容:

string part1 = @"c:\temp";
string part2 = @"assembly.txt";

请问@在part1和part2有什么用?

【问题讨论】:

    标签: c# .net string syntax literals


    【解决方案1】:

    @ 与任何方法无关。

    表示符号后面的字符串中的特殊字符不需要转义:

    @"c:\temp"
    

    等于

    "c:\\temp"
    

    这样的字符串被称为'verbatim'或@-quoted。见MSDN

    【讨论】:

      【解决方案2】:

      正如其他人所说的那样,这是一种无需转义特殊字符并且在指定文件路径时非常有用的方法。

      string s1 =@"C:\MyFolder\Blue.jpg";
      

      另一种用法是当您有大字符串并希望它跨多行而不是长行显示时。

      string s2 =@"This could be very large string something like a Select query
      which you would want to be shown spanning across multiple lines 
      rather than scrolling to the right and see what it all reads up";
      

      【讨论】:

        【解决方案3】:

        C# Language Specification 4.0中所述:

        2.4.4.5 字符串字面量

        C# 支持两种形式的字符串 文字:常规字符串文字和 逐字字符串文字。一个普通的 字符串文字由零或 更多字符包含在 double 中 引号,如“你好”,可能包括 两个简单的转义序列(例如 \t 为制表符),和 十六进制和 Unicode 转义 序列。逐字字符串文字 由一个 @ 字符组成,后跟 双引号字符,零个或多个 字符和结束双引号 特点。一个简单的例子是 @“你好”。在逐字字符串中 字面量,之间的字符 定界符逐字解释, 唯一的例外是 引用转义序列。特别是, 简单的转义序列,和 十六进制和 Unicode 转义 序列不处理 逐字字符串文字。

        【讨论】:

          【解决方案4】:

          它表示逐字字符串文字,并允许您使用某些通常具有特殊含义的字符,例如\,通常是转义字符和换行符。因此,它在处理 Windows 路径时非常有用。

          如果不使用@,则示例的第一行必须是:

          string part1 = "c:\\temp";
          

          更多信息here

          【讨论】:

            【解决方案5】:

            使用@,您不必转义特殊字符。

            所以你必须在没有@的情况下写“c:\\temp”

            如果更精确,它被称为“逐字”字符串。你可以在这里阅读:
            http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx

            【讨论】:

              【解决方案6】:

              @ 只是表示指定字符串的另一种方式,这样您就不必使用 .唯一需要注意的是,双引号必须是 "" 才能表示单个 "。

              【讨论】:

                猜你喜欢
                • 2011-05-01
                • 2022-01-26
                • 1970-01-01
                • 2012-05-17
                • 2011-05-04
                • 2011-01-28
                • 2022-10-09
                • 2021-12-16
                相关资源
                最近更新 更多