2017-01-04 132 views
1

我有一類叫做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 
     }; 
    } 
+0

你可以做到這一點,有一個版本嵌入彙編數據並在文件丟失的情況下使用該嵌入式資源。 –

回答

1

如果你只需要填寫陣列...

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

第二種形式很好!你能向我解釋爲什麼賦值是從括號內「返回」賦值的嗎?這個叫什麼? – heltonbiker

+1

好吧,沒關係:http://stackoverflow.com/questions/9514569/what-does-an-assignment-return – heltonbiker

相關問題