假设我有三个函数:
void A(int i){...}
void B(bool b, string s){...}
void C(float f, double d, char c){...}
在我的应用程序中,在给定的时刻,我打开一个带有按钮的弹出窗口。我的弹出窗口有一个控制器(称为PopupController
)。它对弹出框中的所有内容都有参考,并包括按下按钮时调用的OnButtonPress()
函数。
我的问题是如何使弹出按钮执行给定参数的这3个函数?
...
var popupController = PopupController.CreateInstance();
//I wanna execute this only at button press:
A(1);
B(true, "s");
C(1, 2, 'c');
我该怎么做?我可以创建任何需要在PopupController中存储这些函数的东西。
委托;例如
Action thing = () => A(1);
或
EventHandler handler = delegate {
A(1);
B(true, "s");
C(1, 2, 'c');
};
然后在需要时调用该委托,例如thing();
或handler(this, EventArgs.Empty);
。
如果按下按钮本身就是一个事件,这就更容易了:
btn.Click += delegate {
A(1);
B(true, "s");
C(1, 2, 'c');
};