Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将方法引用传递给C中的其他方法#_C#_Wpf_Events_Reference_Methods - Fatal编程技术网

C# 如何将方法引用传递给C中的其他方法#

C# 如何将方法引用传递给C中的其他方法#,c#,wpf,events,reference,methods,C#,Wpf,Events,Reference,Methods,我想将一个方法的引用传递到另一个方法中,并将其存储为变量。稍后,我将使用此引用来定义事件处理程序 制作事件处理程序时,会传递一个方法引用,如下所示: myButton.Click += new RoutedEventHandler(myButton_Click); 如果您查看intelliSense中“RoutedEventHandler”的构造函数,它看起来像: RoutedEventHandler(void(object, RoutedEventArgs)) 我想做的是将方法“myBut

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

制作事件处理程序时,会传递一个方法引用,如下所示:

myButton.Click += new RoutedEventHandler(myButton_Click);
如果您查看intelliSense中“RoutedEventHandler”的构造函数,它看起来像:

RoutedEventHandler(void(object, RoutedEventArgs))
我想做的是将方法“myButton\u 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);
    }
}
谢谢, 本

试试看

private static delegate void(object sender, RoutedEventArgs e) _buttonClickHandler;
试一试


要引用方法引用(在.NET中称为),请使用处理程序名称,而不是签名

public class EventBuilder
{
    private static RoutedEventHandler _buttonClickHandler;

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

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

要引用方法引用(在.NET中称为),请使用处理程序名称,而不是签名

public class EventBuilder
{
    private static RoutedEventHandler _buttonClickHandler;

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

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

如果_buttonClickHandler已经是一个RoutedEventHandler,我是否可以像设置myButton一样设置它。单击+=\u buttonClickHandler?是的,这是正确的。即使在一般情况下,您也可以省去“neweventhandler(…)”语法;i、 e.我的按钮。单击+=我的按钮\u单击;它本身是有效的。如果_buttonClickHandler已经是RoutedEventHandler,我是否可以像设置myButton一样设置它。单击+=\u buttonClickHandler?是的,这是正确的。即使在一般情况下,您也可以省去“neweventhandler(…)”语法;i、 e.我的按钮。单击+=我的按钮\u单击;它本身是有效的。