重构 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);
}
}
我有以下代码:
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);
}
}