4 网络路径字符串上的反斜杠

4 Backslash on network path string

如果我这样做:

string path = "\myServer\myFile.txt"

我遇到编译错误。所以我这样做:

string path = @"\myServer\myFile.txt"

Visual Studio 的 QUICK WATCH 中路径的输出应该是:

\\myServer\myFile.txt

有什么干净的方法可以避免这 4 个反斜杠的问题吗?

string path = @"\" 不会创建带有 4 个反斜杠的字符串。它在调试器中可能看起来像这样,但请尝试 Debug.WriteLine() 它:只有 2.

Although the output of path is:

\\myServer\myFile.txt

不,不是。您可能会在调试器中看到的值是

\\myServer\myFile.txt
  • 这只是调试器为您转义值。

字符串的值开头有一个双反斜杠,中间有一个反斜杠。例如:

Console.WriteLine(@"\myServer\myFile.txt");

将打印

\myServer\myFile.txt

区分字符串的实际内容和在调试器中看到的某些格式很重要。

如果你想在代码 中表达相同的字符串而不使用 使用逐字字符串文字(即以 @ 开头的形式)你可以只转义每个反斜杠:

string path = "\\myServer\myFile.txt";

同样,实际的 value 一共只有三个反斜杠。例如:

string path1 = "\\myServer\myFile.txt";
string path2 = @"\myServer\myFile.txt";
Console.WriteLine(path1 == path2); // true

它们是表示相同字符串内容的不同文字。

不,你可以选择

string test = @"\myServer\myFile.txt";

string test = "\\myServer\myFile.txt";

两者都包含\myServer\myFile.txt