小编Mik*_*ike的帖子

C# 逐字字符串文字不起作用。非常奇怪的反斜杠总是双

我已经尝试了很长一段时间来弄清楚发生了什么,但我没有发现除了我之外的任何人遇到过这个问题。

我只是想将路径硬编码到字符串中。简单的东西。好吧,由于某种原因

string fullPathSourceFile = @"c:\SQLSOURCE.txt";
Run Code Online (Sandbox Code Playgroud)

正在评估c:\\SQLSOURCE.txt

我已尝试一切方法将其评估为单个反斜杠删除双引号,但它不起作用。我什至尝试过Replace(@"\\", @"\"),但没有任何影响。任何人都知道我的代码发生了什么,当应该评估单个反斜杠时会强制使用双反斜杠?这让我抓狂,这太简单了,但却让我很沮丧。

然后我使用下面的字符串变量:

                using (StreamReader reader = new StreamReader(fullPathSourceFile))
                {
                    string line;

                    while ((line = reader.ReadLine()) != null)
                    {
                        sqlDBsource = line.ToString();
                    }

                    reader.Close();
                }
Run Code Online (Sandbox Code Playgroud)

感谢大家的意见,帮助我弄清楚我做错了什么。在 Visual Studio 中(这很令人困惑),当您在调试器中查看字符串的值时,它会为您添加转义符,因此监视窗口或变量值弹出窗口中的双反斜杠是正常的,并不意味着实际上存在两个反斜杠。当您将鼠标悬停在变量上或在监视窗口中观察它时,单击工具提示/窗格右侧的放大镜图标,这将向您显示未转义的字符串,该字符串将被打印到控制台。显示实际结果的另一种方法是: Console.WriteLine(the_problem_string); 我在代码中遇到的问题超出了帖子的范围,但我从 Visual Studio 看到的结果的混乱让我相信该字符串是问题的根源,但事实并非如此。

c# string literals backslash verbatim

5
推荐指数
1
解决办法
3878
查看次数

标签 统计

backslash ×1

c# ×1

literals ×1

string ×1

verbatim ×1