C# 委托的作用,规范,什么时候用委托?求详细+代码举例
展开全部
委托,从字面上理解在生活中可以找到一些例子,比如说某人患有疾病,他在没有犯病前给身边的人说:“要是我大叫一声,你就赶紧送我上医院”。 这就是一个约定或者叫委托。
那么当此人大叫的时候,身边的人不用问怎么回事,直接送他去医院了。
注意,这里触发了一个事件,就是那人大叫,另一人执行了一个送医院的过程,也就是委托的内容。
回到写代码上,委托一般用在事件的处理或者是线程间的消息、数据等传送。
public delegate void TakeMeOutEventHandler(); //这里定义了一个委托,这就是规范。没有参数
public class A
{
public event TakeMeOutEventHandler TakeMeOut; //class A定义了一个上面委托类型的事件
public void Dosomething()
{
.......
if(this.TakeMeOut!=null) //触发了这个事件
this.TakeMeOut();
......
}
}
public class B
{
A a = new A();
public B()
{
a.TakeMeOut += new TakeMeOutEventHandler(T); //监听A的事件,如果触发后执行方法T
}
private void T()
{
........
}
}
以上是简单代码,是关于两个Class之间的。
线程之间的传递,也类似。
那么当此人大叫的时候,身边的人不用问怎么回事,直接送他去医院了。
注意,这里触发了一个事件,就是那人大叫,另一人执行了一个送医院的过程,也就是委托的内容。
回到写代码上,委托一般用在事件的处理或者是线程间的消息、数据等传送。
public delegate void TakeMeOutEventHandler(); //这里定义了一个委托,这就是规范。没有参数
public class A
{
public event TakeMeOutEventHandler TakeMeOut; //class A定义了一个上面委托类型的事件
public void Dosomething()
{
.......
if(this.TakeMeOut!=null) //触发了这个事件
this.TakeMeOut();
......
}
}
public class B
{
A a = new A();
public B()
{
a.TakeMeOut += new TakeMeOutEventHandler(T); //监听A的事件,如果触发后执行方法T
}
private void T()
{
........
}
}
以上是简单代码,是关于两个Class之间的。
线程之间的传递,也类似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询