在 C# 中,“@”符号有啥作用? [复制]

Posted

技术标签:

【中文标题】在 C# 中,“@”符号有啥作用? [复制]【英文标题】:in C#, What does the "@" symbol do? [duplicate]在 C# 中,“@”符号有什么作用? [复制] 【发布时间】:2011-05-19 03:59:04 【问题描述】:

可能重复:What's the @ in front of a string for .NET?

有时我看到示例代码,字符串旁边会有一个“@”符号。 例如:

    EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
    entityBuilder.Provider = "System.Data.SqlServerCe.3.5";
    entityBuilder.ProviderConnectionString = providerString;
    entityBuilder.Metadata = @"res://*/App_Data.data.csdl|res://*/App_Data.data.ssdl|res://*/App_Data.data.msl";

在第 4 行,“@”的用法是什么? 我尝试删除它,它仍然有效。

【问题讨论】:

一个很好的问题,但值得先查看现有的解释。 顺便说一句,在这种情况下它不会改变任何东西,因为没有什么需要转义 哇。那是在 30 秒内关闭的。马克干得好 :) 【参考方案1】:

诸如@"c:\Foo" 之类的字符串文字称为逐字字符串文字。它基本上意味着,“在到达下一个引号字符之前,不要对字符应用任何解释”。因此,逐字字符串文字可以包含反斜杠(它们不会被加倍)甚至是行分隔符。要在逐字文字中获得双引号 ("),您只需将其加倍,例如 @"My name is ""Jon""" 表示字符串 My name is "Jon"。包含行分隔符的逐字字符串文字还将在行首包含空格,因此我倾向于在空格很重要的情况下不使用它们。不过,它们非常适合在源代码中包含 XML 或 SQL,以及另一个典型用途(不需要行分隔符)用于指定文件系统路径。

Taken from

【讨论】:

(虽然外部链接很有用,但它们往往会意外消失;最好在实际帖子中包含一些内容)【参考方案2】:

它告诉编译器不要将\ 视为转义序列并按字面意思获取字符串。

【讨论】:

以上是关于在 C# 中,“@”符号有啥作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

css 选择器 ~、+、> 有啥作用? [复制]

PHP 中的“->”有啥作用? [复制]

@ 符号在 javascript 导入中有啥作用?

@ 符号在 javascript 导入中有啥作用?

@ 符号在 javascript 导入中有啥作用?

@ 符号在 javascript 导入中有啥作用?