将应用程序设置初始化为默认值的更简洁方法
Cleaner way to initialize application Settings to default values
我有一个名为 LinearTransformation
的 class,我想在执行期间设置其值,以便下次使用它们,然后可以将其覆盖,等等。
目前,我正在验证是否有以前的值,如果没有,我将该值设置为默认值。
问题是:我的代码变得重复、丑陋,而且大部分代码只有在客户端计算机上 运行 第一次进行新安装时才有用。
有没有更优雅的方法来实现这个?
// This method is run when the app starts
private void LoadCalibrações()
{
if (Properties.Settings.Default.CalibXEsq == null)
{
Properties.Settings.Default.CalibXEsq = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibYEsq == null)
{
Properties.Settings.Default.CalibYEsq = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibXDir == null)
{
Properties.Settings.Default.CalibXDir = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibYDir == null)
{
Properties.Settings.Default.CalibYDir = new TransformaçãoLinear();
}
Properties.Settings.Default.Save();
_calibrações = new[]
{
Properties.Settings.Default.CalibXEsq,
Properties.Settings.Default.CalibYEsq,
Properties.Settings.Default.CalibXDir,
Properties.Settings.Default.CalibYDir
};
}
如果你只需要填充数组...
var settings = Properties.Settings.Default;
_calibrações = new[]
{
settings.CalibXEsq ?? new TransformaçãoLinear(),
settings.CalibYEsq ?? new TransformaçãoLinear(),
settings.CalibXDir ?? new TransformaçãoLinear(),
settings.CalibYDir ?? new TransformaçãoLinear(),
};
否则...
var settings = Properties.Settings.Default;
_calibrações = new[]
{
settings.CalibXEsq ?? (settings.CalibXEsq = new TransformaçãoLinear()),
settings.CalibYEsq ?? (settings.CalibYEsq = new TransformaçãoLinear()),
settings.CalibXDir ?? (settings.CalibXDir = new TransformaçãoLinear()),
settings.CalibYDir ?? (settings.CalibYDir = new TransformaçãoLinear()),
};
我有一个名为 LinearTransformation
的 class,我想在执行期间设置其值,以便下次使用它们,然后可以将其覆盖,等等。
目前,我正在验证是否有以前的值,如果没有,我将该值设置为默认值。
问题是:我的代码变得重复、丑陋,而且大部分代码只有在客户端计算机上 运行 第一次进行新安装时才有用。
有没有更优雅的方法来实现这个?
// This method is run when the app starts
private void LoadCalibrações()
{
if (Properties.Settings.Default.CalibXEsq == null)
{
Properties.Settings.Default.CalibXEsq = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibYEsq == null)
{
Properties.Settings.Default.CalibYEsq = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibXDir == null)
{
Properties.Settings.Default.CalibXDir = new TransformaçãoLinear();
}
if (Properties.Settings.Default.CalibYDir == null)
{
Properties.Settings.Default.CalibYDir = new TransformaçãoLinear();
}
Properties.Settings.Default.Save();
_calibrações = new[]
{
Properties.Settings.Default.CalibXEsq,
Properties.Settings.Default.CalibYEsq,
Properties.Settings.Default.CalibXDir,
Properties.Settings.Default.CalibYDir
};
}
如果你只需要填充数组...
var settings = Properties.Settings.Default;
_calibrações = new[]
{
settings.CalibXEsq ?? new TransformaçãoLinear(),
settings.CalibYEsq ?? new TransformaçãoLinear(),
settings.CalibXDir ?? new TransformaçãoLinear(),
settings.CalibYDir ?? new TransformaçãoLinear(),
};
否则...
var settings = Properties.Settings.Default;
_calibrações = new[]
{
settings.CalibXEsq ?? (settings.CalibXEsq = new TransformaçãoLinear()),
settings.CalibYEsq ?? (settings.CalibYEsq = new TransformaçãoLinear()),
settings.CalibXDir ?? (settings.CalibXDir = new TransformaçãoLinear()),
settings.CalibYDir ?? (settings.CalibYDir = new TransformaçãoLinear()),
};