【发布时间】: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
我阅读了一些 C# 文章以使用 Path.Combine(part1,part2) 组合路径。
它使用以下内容:
string part1 = @"c:\temp";
string part2 = @"assembly.txt";
请问@在part1和part2有什么用?
【问题讨论】:
标签: c# .net string syntax literals
【讨论】:
正如其他人所说的那样,这是一种无需转义特殊字符并且在指定文件路径时非常有用的方法。
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";
【讨论】:
如C# Language Specification 4.0中所述:
2.4.4.5 字符串字面量
C# 支持两种形式的字符串 文字:常规字符串文字和 逐字字符串文字。一个普通的 字符串文字由零或 更多字符包含在 double 中 引号,如“你好”,可能包括 两个简单的转义序列(例如 \t 为制表符),和 十六进制和 Unicode 转义 序列。逐字字符串文字 由一个 @ 字符组成,后跟 双引号字符,零个或多个 字符和结束双引号 特点。一个简单的例子是 @“你好”。在逐字字符串中 字面量,之间的字符 定界符逐字解释, 唯一的例外是 引用转义序列。特别是, 简单的转义序列,和 十六进制和 Unicode 转义 序列不处理 逐字字符串文字。
【讨论】:
它表示逐字字符串文字,并允许您使用某些通常具有特殊含义的字符,例如\,通常是转义字符和换行符。因此,它在处理 Windows 路径时非常有用。
如果不使用@,则示例的第一行必须是:
string part1 = "c:\\temp";
更多信息here。
【讨论】:
使用@,您不必转义特殊字符。
所以你必须在没有@的情况下写“c:\\temp”
如果更精确,它被称为“逐字”字符串。你可以在这里阅读:
http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
【讨论】:
@ 只是表示指定字符串的另一种方式,这样您就不必使用 .唯一需要注意的是,双引号必须是 "" 才能表示单个 "。
【讨论】: