为什么C#程序中路径名的斜杠加倍?

时间:2017-02-16 22:06:04

标签: c# escaping

在我正在阅读的C#程序中,路径名中的斜杠加倍,例如:

"C:\\Users\\Tim\\Download"

为什么C#程序中的路径名中的斜杠加倍,这是必要的吗?

2 个答案:

答案 0 :(得分:1)

在C#中使用字符串,您需要使用Escape Sequences

转义字符
  

转义序列

     

由反斜杠()后跟a组成的字符组合   字母或数字组合称为"转义序列。"至   表示换行符,单引号或某些其他字符   字符常量中的字符,必须使用转义序列。一个   转义序列被视为单个字符,因此   作为字符常量有效。

     

转义序列通常用于   指定回车和制表符移动等操作   终端和打印机。它们也用于提供文字   通常表示非打印字符和字符   具有特殊含义,例如双引号(")。该   下表列出了ANSI转义序列及其含义   代表。

     

请注意,问号前面有反斜杠(\?)   在角色的情况下指定文字问号   序列会被误解为三字形。有关更多信息,请参见Trigraphs   信息。

\a  Bell (alert)
\b  Backspace
\f  Formfeed
\n  New line
\r  Carriage return
\t  Horizontal tab
\v  Vertical tab
\'  Single quotation mark
\"  Double quotation mark
\\  Backslash
\?  Literal question mark
\ ooo   ASCII character in octal notation
\x hh   ASCII character in hexadecimal notation
\x hhhh Unicode character in hexadecimal notation if this escape sequence is used in a wide-character constant or a Unicode string literal.

For example, WCHAR f = L'\x4e00' or WCHAR b[] = L"The Chinese character for one is \x4e00".

答案 1 :(得分:0)

斜杠不会加倍 - 它们只是被转义,因为反斜杠在C#字符串中具有特殊含义。反斜杠后跟一些字符的字符组合称为转义序列。它们用于表示不可打印的字符,回车和字符等具有特殊含义的字符,如双引号或反斜杠。

逃逸序列样本:

  • \n - 新行
  • \t - 水平标签
  • \" - 双引号
  • \\ - 反斜杠

因此,如果您想在字符串中使用反斜杠字符:

"C:\Users\Tim\Download"

你应该使用相应的转义序列:

"C:\\Users\\Tim\\Download" 

或者您可以使用逐字字符串。在逐字字符串中,不处理转义序列

@"C:\Users\Tim\Download" 

进一步阅读:Escape Sequences