我读了一些c#文章,结合使用Path.Combine(part1,part2)的路径。 它采用@前缀对C#中的字符串文字做了什么?
string part1 = @"c:\temp";
string part2 = @"assembly.txt";
我不知道什么是在第一部分及第二和使用@
。
我读了一些c#文章,结合使用Path.Combine(part1,part2)的路径。 它采用@前缀对C#中的字符串文字做了什么?
string part1 = @"c:\temp";
string part2 = @"assembly.txt";
我不知道什么是在第一部分及第二和使用@
。
它表示逐字字符串文字,并允许您使用通常具有特殊含义的某些字符,例如\
(通常为转义字符)和新行。由于这个原因,它在处理Windows路径时非常有用。
不使用@
,你的榜样的第一行必须是:
string part1 = "c:\\temp";
更多信息here。
与@你不必逃避特殊字符。
所以,你会写 “C:\\ TEMP” 不@
如果有更多的presise它被称为 '逐字' 字符串。你可以在这里阅读关于它:
http://msdn.microsoft.com/en-us/library/aa691090(v=vs.71).aspx
@只是表示指定一个不同的方式来指定一个字符串,这样你就不必用字符转义。唯一需要注意的是,双引号需要“”代表单个”
正如C# Language Specification 4.0说:
2.4.4.5字符串
C#支持两种形式的字符串 文字的:常规字符串文字和 逐字字符串常量 字符串常量由零或 组成,其中包含更多的字符,双“ ”引号,如“hello”中所示,并且可能包括 两种简单转义句法(如 \ t为制表符),和 十六进制和Unicode转义 序列。逐字字符串字面值 由@字符组成,后面跟着 一个双引号字符,零个或多个 个字符,以及一个结尾双引号 字符。一个简单的例子是 @“hello”。在逐字字符串 文字中, 分隔符之间的字符被逐字解释, 唯一的例外是 quote-escape-sequence。特别是, 简单转义序列和 十六进制和Unicode转义 序列在 逐字字符串文字不处理。
正如其他人所说的那样,您不需要转义特殊字符并且在指定文件路径时非常有用。
string s1 [email protected]"C:\MyFolder\Blue.jpg";
还有一个用途是当你有大量的字符串,并希望它横跨多行而不是一个漫长的显示。
string s2 [email protected]"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";