C#:为啥设置 PropertyValues 有 0 个项目?

Posted

技术标签:

【中文标题】C#:为啥设置 PropertyValues 有 0 个项目?【英文标题】:C#: Why does Settings PropertyValues have 0 items?C#:为什么设置 PropertyValues 有 0 个项目? 【发布时间】:2010-09-10 11:44:28 【问题描述】:

假设设置文件中有 5 个项目(MySetting1MySetting5),为什么 PropertyValues 有 0 个项目而属性有正确的数字?

Console.WriteLine( Properties.Settings.Default.PropertyValues.Count); // Displays 0
Console.WriteLine( Properties.Settings.Default.Properties.Count);     // Displays 5

【问题讨论】:

【参考方案1】:

PropertyValues 似乎是指已设置的 PropertyValues 的数量。如果您调用 Save(),您指定的默认值不会被视为已设置并且不会存储到用户配置中。

Console.WriteLine(Settings.Default.PropertyValues.Count.ToString());
Console.ReadLine();
Settings.Default.Setting = "abc";
Console.WriteLine(Settings.Default.PropertyValues.Count.ToString());
Console.ReadLine();

产生以下输出:

0

1

【讨论】:

看来这样做就足够了:Settings.Default.Setting = Settings.Default.Setting; "PropertyValues 似乎是指已设置的 PropertyValues 的数量" -- 这不太对,因为您所要做的就是 retrieve 强制填充PropertyValues 集合的属性值。对我来说,这似乎是 .NET 中的一个错误,因为这似乎没有记录在案。

以上是关于C#:为啥设置 PropertyValues 有 0 个项目?的主要内容,如果未能解决你的问题,请参考以下文章

我如何以及为啥要设置 C# 构建机器? [关闭]

为啥visual studio 2013安装后,没有c#模板?

为啥 C# 6.0 在使用 Null 传播运算符时不允许设置非 null 可空结构的属性?

为啥 C# 6.0 在使用 Null 传播运算符时不允许设置非 null 可空结构的属性?

为啥 VSCode 调试器不能使用 C# 中的默认 launch.json 设置?

c# winform 关于控件forecolor问题。我明明在属性里设置好了,但运行程序还是不显示,为啥?看图