gpt4 book ai didi

c# - '$' 字符串前缀不用于插值时意味着什么?

转载 作者:太空宇宙 更新时间:2023-11-03 18:03:56 25 4
gpt4 key购买 nike

我刚刚在 .NET Core configuration 上的一篇文章中看到这段代码,字典键对我来说看起来很陌生:

static IReadOnlyDictionary<string, string> DefaultConfigurationStrings{get;} = new Dictionary<string, string>()
{
["Profile:UserName"] = Environment.UserName,
[$"AppConfiguration:ConnectionString"] = DefaultConnectionString,
[$"AppConfiguration:MainWindow:Height"] = "400",
[$"AppConfiguration:MainWindow:Width"] = "600",
[$"AppConfiguration:MainWindow:Top"] = "0",
[$"AppConfiguration:MainWindow:Left"] = "0",
};

为什么是 $[...]?与不使用逗号分隔的键值对有关吗?

最佳答案

括号是新的index initializers .这只是另一种初始化字典的方法,它比 collection initializers 更具可读性。以前有过。

至于字符串,当不使用插值时,它只是一个简单的字符串,仅此而已。据推测,编译器甚至不会为此类字符串生成 string.Format 调用。您也可以删除 $(当不使用任何不同的功能时,它与逐字字符串文字相同)。

不过,$"" 字符串的一个可能原因可能是,它是对源代码预处理器或静态分析工具的提示,该字符串以某种方式存在特别的。我已经看到类似的东西与逐字字符串文字一起使用,以防止 ReSharper 建议将字符串翻译为 i18n。不过,这是您需要在构建环境中寻找的东西。

关于c# - '$' 字符串前缀不用于插值时意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951981/

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