У меня есть следующий код не менее 10 раз в моем коде. Мне кажется вонючим.Могут ли использовать дженерики?
public void DisplayTransitInfo(TransitInfo transitInfo)
{
if (InvokeRequired)
EndInvoke(BeginInvoke(new MethodInvoker(() => DisplayTransitInfo(transitInfo))));
else
{
var control = (from string key in _visiblePanes.Keys
where key == "transitInfo"
select _visiblePanes[key].Control).ToList();
TransitInfoControl cntl = (TransitInfoControl)control[0];
//TODO: Transit Info
}
}
public void ModifyParties(UltraTreeNode node)
{
if (InvokeRequired)
EndInvoke(BeginInvoke(new MethodInvoker(() => ModifyParties(node))));
else
{
var control = (from string key in _visiblePanes.Keys
where key == "parties"
select _visiblePanes[key].Control).ToList();
PartiesControl cntl = (PartiesControl)control[0];
cntl.ModifyParties(node);
}
}
Я чувствую, что в этой ситуации можно использовать дженерики. Я также рассмотрел вопрос о переносе:
var control = (from string key in _visiblePanes.Keys
where key == "parties"
select _visiblePanes[key].Control).ToList();
к своей собственной функции, которая вернет экземпляр элемента управления в словаре.
Этот код вонючий или мне просто нужно, чтобы мой нос работал?
Спасибо, как всегда!
Да, если ничто иное не инкапсулирует этот код в его собственный объект. –