有时我看到示例代码,会有一个“@”符号和字符串。 例如:
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行,“@”的用法是什么? 我试图删除它,它仍然有效。
答案 0 :(得分:3)
字符串文字如@“c:\ Foo”称为逐字字符串文字。它基本上意味着“在达到下一个引号字符之前不要对字符应用任何解释”。因此,逐字字符串文字可以包含反斜杠(没有它们被加倍)甚至行分隔符。要在逐字文字中得到双引号(“),你需要加倍它,例如@”我的名字是“”Jon“”“代表字符串我的名字是”Jon“。包含行分隔符的逐字字符串文字也会在行的开头包含空白区域,所以我倾向于在白色空间很重要的情况下使用它们。虽然它们在源代码中包含XML或SQL非常方便,但另一个典型用途(不需要行分隔符)用于指定文件系统路径。
答案 1 :(得分:1)
它告诉编译器不要将\
视为转义序列并按字面意思取字符串。