在这种情况下如何避免重复的代码?

时间:2020-01-31 04:52:41

标签: c# oop

我构建了一个JavaScript脚本来创建动态表格,并且正在为用户创建的每个部分创建一个验证,该验证从重复的问题中更新标题。因此,我为此建立了一种方法。用户可以在创建带有下拉框,复选框的部分之间进行选择。

因此,我不得不用完全相同的代码创建6个方法,我只更改列表的类型。创建通用方法是否需要等待呢?

    private static int CheckDuplicatedDropdownQuestions(Template template, int i, List<string> collectQuestions)
    {
        foreach (var field in template.Fields.Dropdown)
        {
            if (!collectQuestions.Contains(field.Title))
            {
                collectQuestions.Add(field.Title);
            }
            else
            {
                field.Title = field.Title + " (" + i + ")";
                i++;
            }
        }

        return i;
    }
    ...

1 个答案:

答案 0 :(得分:0)

尝试为foreach部分创建新方法

     private static int CheckDuplicatedDropdownQuestions(Template template, int i, 
    List<string> collectQuestions,string field)
    {
        if(field=="Dropdown")
        {
           NewMethod(template.Fields.Dropdown,ref i);
        }
        else if(field=="CheckBox")
        {
           NewMethod(template.Fields.CheckBox,ref i);
        }

        return i;
    }

    private static void NewMethod(var FieldType,ref int i)
    {
        foreach (var field in FieldType)
        {
            if (!collectQuestions.Contains(field.Title))
            {
                collectQuestions.Add(field.Title);
            }
            else
            {
                field.Title = field.Title + " (" + i + ")";
                i++;
            }
        }
    }