あなたが探している機能を提供するものが .NET に組み込まれているとは思えません。
デフォルト値の追加の引数を使用しDictionary<TKey, TValue>
てオーバーロードを提供するに基づいてクラスを作成できます。たとえば、次のようになります。TryGetValue
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;
}
}
}
おそらくstring
、ジェネリックを維持する代わりに s を使用して回避できます。
オプションであれば、Silverlight および WPF の世界のDependencyObjectもあります。
もちろん、最も簡単な方法は、次のようなものですNameValueCollection
。
string value = string.IsNullOrEmpty(appSettings[key])
? defaultValue
: appSettings[key];
key
null
文字列インデクサーにある可能性があります。しかし、それを複数の場所で行うのは面倒だと理解しています。