C# 如何在字符串中写入反斜杠(\)?

C# 如何在字符串中写入反斜杠(\)?,c#,string,winforms,C#,String,Winforms,我想在文本框中编写如下内容C:\Users\UserName\Documents\Tasks: txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks"; 我得到一个错误: 无法识别的转义序列 如何在字符串中写入反斜杠?反斜杠(“\”)字符是一种特殊的转义字符,用于指示其他特殊字符,如新行(\n)、制表符(\t)或引号(\”) 如果要包含反斜杠字符本身,则需要两个反斜杠或使用

我想在
文本框中编写如下内容
C:\Users\UserName\Documents\Tasks

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks";
我得到一个错误:

无法识别的转义序列

如何在字符串中写入反斜杠?

反斜杠(
“\”
)字符是一种特殊的转义字符,用于指示其他特殊字符,如新行(
\n
)、制表符(
\t
)或引号(
\”

如果要包含反斜杠字符本身,则需要两个反斜杠或使用
@
逐字字符串:

var s = "\\Tasks";
// or 
var s = @"\Tasks";
阅读,其中讨论了使用反斜杠字符转义的字符和逐字字符串文字的使用

一般来说,大多数C#.NET开发人员倾向于在构建文件/文件夹路径时使用
@
逐字字符串,因为这样可以避免他们一直需要编写双反斜杠,并且他们可以直接复制/粘贴路径,因此我建议您养成这样做的习惯



综上所述,在本例中,我实际上建议您使用
路径。将
实用程序方法合并为as,这样您就不必担心路径中是否已经包含反斜杠,并且在合并部分路径时意外地将斜杠加倍或完全忽略它们。

只需退出
”\“
通过使用+
“\\Tasks”
或使用类似于
@“\Tasks”

的逐字字符串来转义反斜杠,只需使用其中两个,如下所示:
\\


.

前面的答案是正确的,但在这种特定情况下,我建议使用System.IO.Path.Combine方法

您可以在此处找到更多详细信息:


用双反斜杠代替单反斜杠…

有一个专门的功能


尽管这篇文章已经很老了,但我还是尝试了一些对我的案例有用的东西

我想创建一个字符串变量,其值如下:

21541_12_1_13\":null
所以我的方法是这样的:

  • 使用逐字构建字符串

    字符串子字符串=@“21541_12_1_13\”:null

  • 然后使用删除功能删除不需要的反斜杠

    string newsubstring=substring.Remove(13,1)

希望有帮助。
干杯

在开始时使用双反斜杠\\或放@string@Precious1tj:我猜他们可能会否决你,因为如果你在谷歌上搜索“C#Unrecogned escape sequence”,你就可以很容易地找到答案,而不必发布问题。@Precious1tj可能会让你找到答案?我没有投反对票,所以我不确定。@Precious1tj:我没有说你的头衔,但是你的名字。但仅供参考,对于未来的谷歌搜索,请确保在搜索中包含“C”。例如,用“C#”搜索标题时的第一个结果是@MattyAB:您如何检查结果字符串?如果您在Visual Studio调试器中签出它,它将显示它,并添加转义字符。此外,使用
Path.Combine
与操作系统无关,因此此代码可以在*nix和windows计算机上运行
var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fullpath = path.Combine(folder,"Tasks");
21541_12_1_13\":null