2015-12-29 36 views
1

我有以下代碼:最佳方式重構如果語句

      if (adSetting.Core_standard_application_role) 
          { 
           rc = new IntegrationRoleCompany(); 
           rc.RoleCompany = firmSettings.FirmNo.ToString(); 
           rc.RoleName = "Core standard application role"; 
           rcList.Add(rc); 
          } 
          if (adSetting.Expense_Invoice_Application_Access) 
          { 
           rc = new IntegrationRoleCompany(); 
           rc.RoleCompany = firmSettings.FirmNo.ToString(); 
           rc.RoleName = "Expense Invoice Application Access"; 
           rcList.Add(rc); 
          } 

的問題是,我有20個,如果的檢查,我檢查addSetting.Property。我們的問題是:

什麼是if語句來重構這個最好和最有效的方法是什麼?

回答

1

你可以有一個20X2陣列與adSetting.STUFF_AS_STRING - > rc.RoleName映射。

然後循環遍歷數組for循環

僞代碼:

for (var i=0; i<theArray.length; i++) { 
    adSettingStr, RoleName = theArray[i] 
    if (adSetting[adSettingStr]) { 
     rc = new IntegrationRoleCompany(); 
     rc.RoleCompany = firmSettings.FirmNo.ToString(); 
     rc.RoleName = RoleName; 
     rcList.Add(rc); 
    } 

} 
+0

謝謝你,聰明的解決方案:) – mrjasmin

+0

歡迎你......這是我第一次看到一個獨立的語言問題......比較標準的「爲什麼不工作」 – jcr