Я пытаюсь использовать делегатов для сокращения моего кода в этом проекте. У меня есть 4 DropDownLists на моей странице asp.net. В моем файле codebehind я связываю их с разными вызовами бизнес-объектов с данными. Сейчас у меня есть следующий код:Может ли C# делегаты работать таким образом?
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#? Я знаю, что работает на питоне, откуда я родом.
Это, безусловно, то, что я ищу! –