当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中将方法引用传递给不同的方法

如何解决《如何在C#中将方法引用传递给不同的方法》经验,为你挑选了1个好方法。

我想将方法​​的引用传递给另一个方法并将其存储为变量.稍后,我想使用此引用来定义事件处理程序.

在创建事件处理程序时,会传递方法引用,如:

myButton.Click += new RoutedEventHandler(myButton_Click);

如果你从intelliSense查看"RoutedEventHandler"的构造函数,它看起来像:

RoutedEventHandler(void(object, RoutedEventArgs))

我想做的是将方法"myButton_Click"传递给另一个静态方法,然后在那里创建一个事件处理程序.如何将引用传递给静态方法?我尝试了以下但它不编译:

public class EventBuilder
{
    private static void(object, RoutedEventArgs) _buttonClickHandler;

    public static void EventBuilder(void(object, RoutedEventArgs) buttonClickHandler)
    {
        _buttonClickHandler = buttonClickHandler;
    }

    public static void EnableClickEvent()
    {
        myButton.Click += new RoutedEventHandler(_buttonClickHandler);
    }
}

谢谢,本



1> bdukes..:

要引用方法引用(在.NET中称为委托),请使用Handler名称而不是签名.

public class EventBuilder
{
    private static RoutedEventHandler _buttonClickHandler;

    public EventBuilder(RoutedEventHandler buttonClickHandler)
    {
        _buttonClickHandler = buttonClickHandler;
    }

    public static void EnableClickEvent()
    {
        myButton.Click += new RoutedEventHandler(_buttonClickHandler);
    }
}

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有