我最近在 MSDN 上找到了本教程,该教程允许我的应用程序的用户更改和保存设置。经过一番挠头后,我想我明白了所有这些,除了一件事。让我们从原始代码中最相关的部分开始。一切都在一个名为 AppSettings 的类中。我用来测试的属性是son1。我的理解是这样的:
在代码的最后,你得到了这个:
// Property to get and set son1 Key.
public int son1
{
get
{
return GetValueOrDefault<int>(son1KeyName, son1Default);
}
set
{
if (AddOrUpdateValue(son1KeyName, value))
{
Save();
}
}
}
如果你设置属性,这很容易。它只是调用这个方法:
public bool AddOrUpdateValue(string Key, Object value)
{
bool valueChanged = false;
// If the key exists
if (settings.Contains(Key))
{
// If the value has changed
if (settings[Key] != value)
{
// Store the new value
settings[Key] = value;
valueChanged = true;
}
}
// Otherwise create the key.
else
{
settings.Add(Key, value);
valueChanged = true;
}
return valueChanged;
}
我只需要这样做,我就完成了:
AppSettings param = new AppSettings();
param.son1 = 1;
现在 GET 的语法对我来说似乎更奇怪了。过程是一样的,一个方法被一个属性使用。get 属性列在我的帖子顶部。如您所见,它调用了这个方法:
public T GetValueOrDefault<T>(string Key, T defaultValue)
{
T value;
// If the key exists, retrieve the value.
if (settings.Contains(Key))
{
value = (T)settings[Key];
}
// Otherwise, use the default value.
else
{
value = defaultValue;
}
return value;
}
我对“T”感到不安,它也写在<和>之间。如果我能理解它,我应该能够将属性设置为默认值,我将在我的程序开始时执行此操作。任何提示表示赞赏。谢谢你。