簡體   English   中英

如何在C#中將方法引用傳遞給其他方法

[英]How Do I Pass A Method Reference to A Different Method in C#

我想將一個方法的引用傳遞給另一個方法,並將其存儲為變量。 稍后,我想使用此引用來定義事件處理程序。

制作事件處理程序時,將像以下那樣傳遞方法引用:

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);
    }
}

謝謝,本

若要引用方法引用(在.NET中稱為委托 ),請使用處理程序名稱而不是簽名。

public class EventBuilder
{
    private static RoutedEventHandler _buttonClickHandler;

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

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

嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM