我不相信.NET中内置了任何东西,它提供了您正在寻找的功能。
您可以创建基于Dictionary<TKey, TValue>
public class MyAppSettings<TKey, TValue> : Dictionary<TKey, TValue>
{
public void TryGetValue(TKey key, out TValue value, TValue defaultValue)
{
if (!this.TryGetValue(key, out value))
{
value = defaultValue;
}
}
}
一类,它提供的TryGetValue
过载与默认值的附加参数,例如:你也许可以用string
s,而不是在一般保持脱身。
如果这些选项是Silverlight和WPF世界,还有DependencyObject。
当然,最简单的方法是这样的一个NameValueCollection
:在字符串索引
string value = string.IsNullOrEmpty(appSettings[key])
? defaultValue
: appSettings[key];
key
可以null
。但我知道在多个地方这样做是一件痛苦的事情。
我提供了一个扩展方法来执行此操作,其中包括TypeConverstion:http://stackoverflow.com/a/34053423/375727。 显然不是为OP,因为这篇文章是5岁,但像我这样的未来谷歌没有在这里找到答案。 – Rhyous 2015-12-02 21:55:49