例如:
Class A
{
public void B(Parm p1,Parm p2){
}
public void C (Control c ,Parm p3){
Parm p1=value;
Parm p2=value;
c.ButtonPressed+=cButtonPressed ; ?????1
}
public void cButtonPressed(Object sender,EventArgs e){
B(p1,p2); ????2
}
}
A类的方法B有两个参数p1,p2,A类的方法C的参数是控件c和p3,现在要在方法C中指定c的ButtonPressed事件为方法cButtonPressed,现在的问题是:参数p1,p2在方法C中, 不知如何传递参数?请教各位给我提供一个好的解决方案,不胜感激!!
这个问题的解决很简单.只需要把事件委托换成匿名委托或者lamda就好了.
public void C (Control c ,Parm p3){
Parm p1=value;
Parm p2=value;
c.ButtonPressed+=(s,e)=>
{
//可以使用p1,p2,p3
};
}
不过不太建议这样解决,出现这样的问题,通常是由于设计的问题.请多思考一下是否真的有必要这样做