【问题标题】:What does "@" mean in C# [duplicate]C#中的“@”是什么意思[重复]
【发布时间】:2011-01-22 15:24:39
【问题描述】:

可能重复:
when to use @ in c# ?

F.e. string sqlSelect = @"SELECT * FROM Sales".

【问题讨论】:

标签: c#


【解决方案1】:

在 C 和 C++ 中,字符串有一些特殊字符,称为“转义字符”。例如\&" 本身就是一个转义字符!

以非常正常的方式,您可以打印如下语句:

南希说你好,世界!笑了

你必须像下一个一样设置你的字符串

string str = "Nancy said Hello World! \& smiled.";

但是微软的人在 C# 编译器中做了一个新的很酷的功能,所以你可以通过在任何字符串前添加@ 来避免处理转义字符的麻烦,编译器会自己处理所有的转义字符。对于最后一个示例,您可以在 C# 中使用它,如下所示:

string str = @"Nancy said Hello World! & smiled.";

【讨论】:

  • 同意定界,但我不相信&是c#中需要定界的字符
【解决方案2】:

它允许你有一个带有\ 分隔符的字符串。 @"C:\A\b\c\d\e\f" 是合法的。

【讨论】:

    【解决方案3】:

    表示这样的字符串不需要转义字符。

    所以如果你想写c:\Windows的路径,你可以写成

    string path = "c:\\Windows";  // Note escaped '\'
    

    string path = @"c:\Windows";  // '\' need not be escaped
    

    【讨论】:

    • 我正在努力寻找,但在您的第一个示例中我看不到双 \...
    • 已修复。似乎有些格式问题。
    【解决方案4】:

    这意味着将以下字符串解释为文字。意思是,字符串中的\ 实际上是输出中的"\",而不是必须将"\\" 表示文字字符

    【讨论】:

      【解决方案5】:

      在字符串之前它允许不同的字符串格式规则。您不能使用反斜杠来指定特殊符号和“”(双引号变成引号)。我发现这种格式对正则表达式非常有用

      例子

      Console.WriteLine(@"\n""\/a"); // outputs \n"\/a 
      Console.WriteLine("\\n\"\"\\/a"); // outputs \n"\/a
      

      您可能还会在变量之前看到@符号。在这种情况下,它允许使用特殊的 C# 关键字作为变量。

      例子:

      var @switch = 1;
      var @if = "test";
      

      【讨论】:

        【解决方案6】:

        有两种类型的字符串文字,常规的和逐字的。 @ 符号使其成为逐字字符串文字。

        MSDN: String literals (C#)

        【讨论】:

          【解决方案7】:

          逐字字符串文字以@开头 并且还包含在双 引号。例如:

          @"good morning"  // a string literal
          

          来自,请查看示例上方的最后几行以获取更多信息。 http://msdn.microsoft.com/en-us/library/362314fe.aspx

          【解决方案8】:

          用于字符串文字。它将引号 (") 标记内的字符串标记为值,而不对该字符串中的符号应用任何解释。

          【讨论】:

            猜你喜欢
            • 2017-02-17
            • 2014-03-23
            • 2017-10-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-09-12
            • 2019-10-28
            相关资源
            最近更新 更多