Избавиться от повторения вызова одного и того же метода с одним меняющимся параметром - C#

Узнай цену своей работы

Формулировка задачи:

        struct Marker
        {
            public static string chipValue= '\"' + "Value" + '\"';
            public static string chipElementInfo = '\"' + "ElementInfo" + '\"';
            public static string chipDescription = '\"' + "Description" + '\"';
        }
 
        private void ParseCadStarNetList(List<string> netList)
        {
            foreach (string line in netList)
            {
                if (line.Contains(Marker.chipValue))
                    UpdateChipNameAndValue(ChipValues, line, Marker.chipValue);
                if (line.Contains(Marker.chipElementInfo))
                    UpdateChipNameAndValue(ChipValues, line, Marker.chipElementInfo);
                if (line.Contains(Marker.chipDescription))
                    UpdateChipNameAndValue(ChipValues, line, Marker.chipDescription);
            }
            ...........................................
Задача: избавиться от тупого повторения вызова одного и того же метода с одним меняющимся параметром. Дело в том, что структура Marker дальше буде расширяться. До каких пределов, пока сказать трудно, но уже щас это выглядит просто отвратительно.

Решение задачи: «Избавиться от повторения вызова одного и того же метода с одним меняющимся параметром»

textual
Листинг программы
        struct Marker
        {
            public static string chipValue = '\"' + "Value" + '\"';
            public static string chipElementInfo = '\"' + "ElementInfo" + '\"';
            public static string chipDescription = '\"' + "Description" + '\"';
 
            public static List<string> ChipList()
            {
                List<string> list = new List<string>();
                foreach (var field in typeof(Marker).GetFields())
                    list .Add((String)field.GetValue(null));            
              return list;
            }           
        }
 
        private void ParseCadStarNetList(List<string> netList)
        {
            foreach (string line in netList)           
                foreach (string marker in Marker.ChipList())
                    if (line.Contains(marker))
                        UpdateChipNameAndValue(marker); 
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.6 из 5
Похожие ответы