我有 2 个按钮执行相同的功能但处于不同的状态。有代码是这样的。
private void button1_Click(){
// do function1
if(condition){
...decrement an integer
//do function2
}
}
private void button2_Click(){
// do function1
if(another condition){
...increment an integer
//do function2
}
}
Run Code Online (Sandbox Code Playgroud)
我可以传递条件 1 和条件 2 并递增、递减方法吗?
是的你可以。但是你能做的事情仍然有限。考虑这个
public void Foo(Action action, Func<Boolean> someCondition) {
if (someCondition() == true) action();
}
Run Code Online (Sandbox Code Playgroud)
您可以通过将条件 1 和条件 2 包装在方法中并将它们用作委托来实现此目的,这允许将它们传递到方法中。
例如,您可以拥有带有委托签名的消息,期望一个接受 x 个输入并返回布尔值的方法。然后,您创建与条件 1 和 2 的签名相匹配的方法,并将适当的方法传递给该方法。
在方法内部,您只需调用委托,就像它是一个方法一样(实际上,它是一个方法)。
检查 Microsoft 有关委托的文档:http://msdn.microsoft.com/en-us/library/ms173171 (v=vs.80).aspx
| 归档时间: |
|
| 查看次数: |
12945 次 |
| 最近记录: |