Как я могу избежать дублирования кода в этой ситуации? - PullRequest
0 голосов
/ 31 января 2020

Я создал скрипт javascript, который создает динамические формы c, и я создаю проверку для каждого раздела, который создает пользователь, который обновляет заголовок из дублированных вопросов. Итак, я построил метод для этого. Пользователь может выбирать между созданием раздела с раскрывающимися списками, флажками ...

Итак, мне пришлось создать 6 методов с точно таким же кодом, я только меняю тип списка. Можно ли ждать этого, создавая метод c generi?

    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 голосов
/ 31 января 2020

Попробуйте создать новый метод для части 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++;
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...