C#将回调传递给按钮
在Javascript或Flash中,我习惯于将回调传递给我的按钮对象,如下所示: 主类C#将回调传递给按钮,c#,xna,C#,Xna,在Javascript或Flash中,我习惯于将回调传递给我的按钮对象,如下所示: 主类 function init() { var myButton = new Button("red", doSomething); } function doSomething() { log("someone clicked our button, but who?"); } 按钮类构造函数 function Button(color, callback) { addListene
function init() {
var myButton = new Button("red", doSomething);
}
function doSomething() {
log("someone clicked our button, but who?");
}
按钮类构造函数
function Button(color, callback) {
addListener(mouseClick, callback);
}
这个例子大大简化了,关键是可以将函数名作为参数传递给Button实例。单击按钮后,该按钮将调用该函数
这在C#中可能吗?我读过一些关于代表的内容,但找不出一个简单的例子。很简单:
//Declare the function "interface"
delegate string UppercaseDelegate(string input);
//Declare the function to be passed
static string UppercaseAll(string input)
{
return input.ToUpper();
}
//Declare the methode the accepts the delegate
static void WriteOutput(string input, UppercaseDelegate del)
{
Console.WriteLine("Before: {0}", input);
Console.WriteLine("After: {0}", del(input));
}
static void Main()
{
WriteOutput("test sentence", new UppercaseDelegate(UppercaseAll));
}
似乎没有办法在WinForms中使用Button类在构造函数中分配回调。但作为第二步,这相当容易:
Button myButton = new Button("Text Displayed");
myButton.Click += (sender, args) => SomeFunction();