2015-12-29 34 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