繁体   English   中英

重构If语句的最佳方法

[英]Best way to refactor If-statement

我有以下代码:

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

问题是我在检查addSetting.Property的地方有20个if-checks。 现在问题来了:

重构此if语句的最佳和最有效方法是什么?

您可以使用adSetting.STUFF_AS_STRING-> rc.RoleName映射获得20x2的数组。

然后在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);
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM