将应用程序设置初始化为默认值的更简洁方法

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()),
};