gpt4 book ai didi

c# - 为什么我的字典要向字符串中添加额外的转义字符?

转载 作者:行者123 更新时间:2023-11-30 19:49:41 24 4
gpt4 key购买 nike

应用程序配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="1" value="An error occured.\r\nPlease try again later." />
</appSettings>
</configuration>

代码:

Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
string key = "1";

keyValuePairs.Add(key, ConfigurationManager.AppSettings["key"]);

if (keyValuePairs.ContainsKey(key))
{
// when I hover over the object, keyValuePairs, in my debugger, I see, "An error occured.\r\nPlease try again later."
string value1 = keyValuePairs[key];
// now when I hover over the local variable, value, I see, "An error occured.\\r\\nPlease try again later."
}

我很好奇为什么上面的代码会在“\r\n”中加上转义字符,使其成为“\r\n”

我还想知道如何避免获得额外的“\”字符。

最佳答案

字典没有对您的字符串做任何事情。当显示的字符串包含换行符时,调试器,或更具体地说是表达式计算器,将改变显示字符串的格式。最终目标是使其在调试器通常具有的值的单行上更好地显示。

我最近写了一篇博文,详细介绍了调试器的作用以及设计背后的原因

编辑

我认为您的示例代码中存在错误。我认为您在 @ 符号处离开了词典添加中的值。没有 @ 符号我得不到你的复制品,但有了它我就得到了。假设缺少 @ ...

您看到带有额外转义符的字符串的原因是调试器始终将字符串显示为字符串文字而不是逐字字符串。在字符串文字中,您需要双重转义来匹配逐字字符串中的等效代码。因此 \n 变成了 \\n

关于c# - 为什么我的字典要向字符串中添加额外的转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3632130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com