c#中的事件和委托

本文深入探讨了事件与委托在编程中的概念及实际应用,包括它们的区别、使用场景以及实例演示。

关于事件和委托我也搞不明白到底咋回事。

平常使用到的有:

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;

}

大概用法就是这样,当让EventHandler <类型>可以定义类型,以便传参数。查过网上,说是带了event的是事件,没带的是委托,事件判断注册过没要用反射,而委托直接判断;事件笔委托更规范。但是平时我也不管这些的,都是用的不带event的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值