[英]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.