关于事件和委托我也搞不明白到底咋回事。
平常使用到的有:
1、delegate
a、这据说是委托,当用线程改变主界面的控件或什么的,就要用到这个,首先定义一个委托,加到主界面的方法中
delegate void Delegate(类型 参数);
private void main(类型 参数)
{
if (!this.InvokeRequired)
{
执行方法
}
else
{
this.Invoke(new Delegate(main), new object[] {参数...});
}
}
b、delegate另一种用法,就是在另一个类中或界面里,要给主界面传值并执行方法。
主界面中定义delegate,
private delegate void Delegatem(类型 参数);
private Delegatem method(类型 参数);
private void exemethod(类型 参数)
{
}
然后 把主界面的呢方法加到刚才定义的委托上:
method= new Delegatem(exemethod);
当初始化另一个类时,就把刚才那个method传到另一个类里面。
在另一个类里使用时
void othermethod(类型 参数)
{
main.Invoke(method, new Object[]{参数});
}
main 是主界面。
2、EventHandler事件
其实我一直不明白到底这是不是事件,用法是:
类A:
public class A
{
private 类B b;
private voi main()
{
b.eventtest1+=new EventHandler(method);
if(b.eventtest2!=null)
b. eventtest2+= new EventHandler(method);
}
private voi method()
{}
}
类B
public class B
{
public event EventHandler eventtest1;
public EventHandler eventtest2;
}