在C中,”@”符号的作用是什么?


in C#, What does the “@” symbol do?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What's the @ in front of a string for .NET?

有时我看到了示例代码,会有一个"@"符号和字符串。例如:

1
2
3
4
    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行,"@"的用法是什么?我试着去掉这个,它仍然有效。


字符串文字(如@"C:foo")称为逐字字符串文字。它的基本意思是,"在到达下一个引号字符之前,不要对字符应用任何解释"。因此,逐字字符串文字可以包含反斜杠(不需要折叠)甚至行分隔符。要在逐字的文本中获得双引号("),只需将其加倍,例如@"我的名字是"jon"代表字符串,我的名字是"jon"。"包含行分隔符的逐字字符串文本也将在行首包含空格,因此在空格很重要的情况下,我倾向于不使用它们。不过,在源代码中包含XML或SQL非常方便,另外一个典型的用途(不需要行分隔符)是指定文件系统路径。

取自


它告诉编译器不要把\当作转义序列,字面上取字符串。