C# 将应用程序设置初始化为默认值的更简洁的方法
我有一个名为C# 将应用程序设置初始化为默认值的更简洁的方法,c#,wpf,application-settings,C#,Wpf,Application Settings,我有一个名为LinearTransformation的类,我希望在执行过程中设置该类的值,以便下次使用它们,然后可以覆盖它们,等等 目前,我正在验证是否存在以前的值,如果没有,我将该值设置为默认值 问题是:我的代码已经变得重复、难看,而且大多数代码只有在新安装第一次在客户机上运行时才有用 有没有更优雅的方法来实现这一点 // This method is run when the app starts private void LoadCalibrações() {
LinearTransformation
的类,我希望在执行过程中设置该类的值,以便下次使用它们,然后可以覆盖它们,等等
目前,我正在验证是否存在以前的值,如果没有,我将该值设置为默认值
问题是:我的代码已经变得重复、难看,而且大多数代码只有在新安装第一次在客户机上运行时才有用
有没有更优雅的方法来实现这一点
// 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()),
};
您可以这样做,并在程序集中嵌入一个版本的数据,如果文件丢失,则使用该嵌入资源。第二种形式很好!你能解释一下为什么赋值是从括号内“返回”赋值吗?这叫什么?好吧,没关系: