我已经尝试了很长时间来弄清楚发生了什么,但是除了我之外,还没有发现有人遇到过这个问题。C#逐字字符串文字不起作用。非常奇怪的反斜杠总是加倍
我只是试图硬编码到一个字符串的路径。简单的东西。以及由于某种原因
string fullPathSourceFile = @"c:\SQLSOURCE.txt";
正在评估到c:\\SQLSOURCE.txt
我用尽了一切办法将其评价为一个反斜杠去掉双引号,它不会工作。我甚至试过Replace(@"\\", @"\")
,它没有任何影响。任何人都知道我的代码会发生什么情况,当应该评估一个代码时会强制产生双反斜杠。这让我感到疯狂,这很容易,但却让我感到很沮丧。
我然后用下面的字符串变量:
using (StreamReader reader = new StreamReader(fullPathSourceFile))
{
string line;
while ((line = reader.ReadLine()) != null)
{
sqlDBsource = line.ToString();
}
reader.Close();
}
感谢大家的输入,帮助我找出我做错了。在Visual Studio中(这很让人困惑),当您查看调试器中字符串的值时,它会为您放置转义符,因此观察窗口或变量值弹出窗口中的双反斜杠是正常的,并不意味着实际上存在两个反斜杠。将鼠标悬停在监视窗口中时,单击工具提示/窗格右侧的放大镜图标,这会显示未打印的字符串将显示在控制台上。另一种显示实际结果的方法是:Console.WriteLine(the_problem_string);我在代码中遇到的问题超出了帖子的范围,但是我从Visual Studio看到的结果混乱让我相信,当字符串不是问题时,字符串就是问题的根源。
问题在哪里,它似乎按预期工作。 – user1336827
嗯...那么问题是什么?我在你的问题的任何地方都看不到双反斜杠。 – ohiodoug
我刚编辑它显示双反斜杠; SO标记隐藏了它。 –