【问题标题】:Best way to refactor If-statement重构 If 语句的最佳方法
【发布时间】:2015-12-29 20:48:52
【问题描述】:

我有以下代码:

                            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 个 if-checks 我检查 addSetting.Property。现在问题来了:

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

【问题讨论】:

    标签: if-statement coding-style refactoring


    【解决方案1】:

    您可以使用 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);
        }
    
    }
    

    【讨论】:

    • 谢谢,聪明的解决方案:)
    • 不客气……这是我第一次看到“语言无关的问题……与标准的“为什么 X 不起作用”相比非常有趣
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2022-08-18
    • 1970-01-01
    相关资源
    最近更新 更多