C# System.Configuration.ConfigurationManager.AppSettings重复\

C# System.Configuration.ConfigurationManager.AppSettings重复\,c#,.net,visual-studio-2010,C#,.net,Visual Studio 2010,我正在使用System.Configuration.ConfigurationManager.AppSettings[“path”]检索文件所在的路径,App.config中的“path”值为C:\Temp\config.ini,但它返回\replicateC:\\Temp\\config.ini 我认为这很容易解决,但我很难找到解决方案。你怎么知道这个值有双斜杠? 可能发生的情况是字符串确实有双斜杠,但您的查看器正在转义它 正如@Jon Skeet在这里建议的那样:也许可以尝试查看path.l

我正在使用
System.Configuration.ConfigurationManager.AppSettings[“path”]
检索文件所在的路径,App.config中的“path”值为
C:\Temp\config.ini
,但它返回\replicate
C:\\Temp\\config.ini


我认为这很容易解决,但我很难找到解决方案。

你怎么知道这个值有双斜杠? 可能发生的情况是字符串确实有双斜杠,但您的查看器正在转义它


正如@Jon Skeet在这里建议的那样:也许可以尝试查看path.length并计算字符。

如何判断该值有双斜杠? 可能发生的情况是字符串确实有双斜杠,但您的查看器正在转义它

正如@Jon Skeet在这里所建议的:也许可以尝试查看path.length并计算字符。

在C#中,反斜杠字符是转义字符。此字符用于在字符串中包含特殊字符,例如换行符(
\n
),制表符(
\t

为了在字符串中包含反斜杠,还需要在反斜杠前面添加转义字符,以便键入
\\
。如果要将值“C:\Temp\Config.ini”分配给变量,需要按如下方式键入:

var path = "C:\\Temp\\Config.ini";
调试器中显示的值也会显示双反斜杠,但C#会正确处理此问题

有关C#中转义字符的详细信息,请参见此。

在C#中,反斜杠字符是转义字符。此字符用于在字符串中包含特殊字符,例如换行符(
\n
),制表符(
\t

为了在字符串中包含反斜杠,还需要在反斜杠前面添加转义字符,以便键入
\\
。如果要将值“C:\Temp\Config.ini”分配给变量,需要按如下方式键入:

var path = "C:\\Temp\\Config.ini";
调试器中显示的值也会显示双反斜杠,但C#会正确处理此问题


有关C#中转义字符的详细信息,请参见此。

返回“C:\\Temp\Config.ini”或“C:\\Temp\\Config.ini”?C:\\Temp\\Config.ini如果我设置了C:\\Temp,它将返回C:\\Temp;如果我设置了C:\\Temp,它将返回C:\\\Temp,所以一切正常。:)它只是跳过了“\”。您将在带“\\”的调试器中看到它,但例如,如果将该值复制到记事本,它将只显示一个。没什么好担心的,这个计划会奏效。如果担心这种情况,请使用@before字符串,它将保护您:)@“C:\\Temp\\Config.ini”返回“C:\\Temp\Config.ini”或“C:\\Temp\\Config.ini”?C:\\Temp\\Config.ini如果我设置C:\Temp,它将返回C:\\Temp;如果我设置C:\\Temp,它将返回C:\\\\Temp,所以一切正常。:)它只是跳过了“\”。您将在带“\\”的调试器中看到它,但例如,如果将该值复制到记事本,它将只显示一个。没什么好担心的,这个计划会奏效。如果对此感到害怕,请使用@before字符串,它将保护您:)@“C:\\Temp\\Config.ini”