Я пытаюсь использовать делегатов, чтобы сократить мой код в этом проекте.У меня есть 4 DropDownLists на моей странице asp.net.В моем файле codebehind я связываю их с различными вызовами бизнес-объектов с данными.Прямо сейчас у меня есть следующий код:
DeptList.DataSource = bl.getAcademicDepts();
DeptList.DataBind();
TermList.DataSource = bl.getTerms();
TermList.DataBind();
InstructorList.DataSource = bl.getInstructors();
InstructorList.DataBind();
EEList.DataSource = bl.getEE();
EEList.DataBind();
Это кажется действительно повторяющимся, поэтому я решил сделать функцию как ярлык
private void SourceAndBind(DropDownList d, <business layer method call>)
{
d.DataSource = <businesslayer method call>();
d.DataBind();
}
Тогда мой первый блок кода просто становится
SourceAndBind(DeptList, bl.getAcademicDepts());
SourceAndBind(TermList, bl.getTerms());
SourceAndBind(InstructorList, bl.getInstructors());
SourceAndBind(EEList, bl.getEE());
Однако я не знаю, что поставить для второго параметра.Каждый из вызовов бизнес-уровня не принимает параметров, но каждый из них возвращает объекты разных типов.Я пытался использовать делегаты, но я не мог понять, как их создать без определенного типа возвращаемого значения или без параметров.Можно ли добиться того, что я хочу с C #?Я знаю, что это работает в Python, откуда я и пришел.