Lir*_*man 11 c# events delegates event-handling
我正在尝试编写一个也会处理click事件的泛型方法,我希望允许用户将自己的方法作为click事件传递.像这样的东西:
public static void BuildPaging(
    Control pagingControl, short currentPage, short totalPages,  ???)
{
    for (int i = 0; i < totalPages; i++)
    {
        LinkButton pageLink = new LinkButton();
        ...
        pageLink.Click += ???;
        pagingControl.Controls.Add(paheLink);
    }
}
Run Code Online (Sandbox Code Playgroud)
我知道这是可能的,但我不记得怎么做了......
Pat*_*man 20
只需使用事件处理程序的类型作为参数类型:
public static void BuildPaging(Control pagingControl
                              , short currentPage
                              , short totalPages
                              , EventHandler eh // <- this one
                              )
{
    for (int i = 0; i < totalPages; i++)
    {
        LinkButton pageLink = new LinkButton();
        ...
        pageLink.Click += eh;
        pagingControl.Controls.Add(paheLink);
    }
}
Run Code Online (Sandbox Code Playgroud)
注意:完成后不要忘记删除事件处理程序,否则可能会泄漏内存!