Моей наиболее часто используемая мини-картины:Полезной мини-модели (не дизайн модели)
VideoLookup = new ArrayList { new ArrayList { buttonVideo1, "Video01.flv" },
new ArrayList { buttonVideo2, "Video02.flv" },
new ArrayList { buttonVideo3, "Video03.flv" },
new ArrayList { buttonVideo4, "Video04.flv" },
new ArrayList { buttonVideo4, "Video04.flv" }
};
Это означает, что вместо переключателя заявления с футляром для каждой кнопки я могу вместо этого просто сравнить кнопку, которая была нажата с каждый элемент в ArrayList. Затем, когда я нашел совпадение, я запускаю правильный файл (хотя действие, которое является второй частью, «lookup» может быть делегатом или чем-то еще).
Главное преимущество заключается в том, что у меня нет проблемы с запоминанием для добавления всего правильного кода для каждого случая инструкции коммутатора, я просто добавляю новый элемент в массив ArrayList.
(Да, я знаю, что использование ArrayList - не лучший способ, но это старый код. И я знаю, что цикл через массив каждый раз не так эффективен, как использование оператора switch, но этот код не находится в плотной петле)
Есть ли у кого-нибудь еще какие-либо мини-шаблоны, которые они используют, что экономит время/усилие или делает код более удобочитаемым? Они не обязательно должны быть связаны с графическим интерфейсом.
Обновление: Не копируйте этот код, я знал, что это плохо, но я не понимал, насколько это плохо. Вместо этого используйте что-то подобное.
Hashtable PlayerLookup = new Hashtable();
PlayerLookup.Add(buttonVideo1, "Video01.flv");
PlayerLookup.Add(buttonVideo2, "Video02.flv");
PlayerLookup.Add(buttonVideo3, "Video03.flv");
PlayerLookup.Add(buttonVideo4, "Video04.flv");
string fileName = PlayerLookup[currentButton].ToString();
Ум ... не будет лучше работать в Map/Dictionary здесь? –
Это ужасная, ужасная идея. Карта/Словарь - это намного лучшее решение. –
точка блуждания за вопросы и ответы –