这是几个简单的例子,但是实际的开发中委托还还只在反射时用到过,事件的话只自己做了一次,并且还是特意去用的 ,实际上可以不用。线程的话,因为需要,所以用的会多点,这里主要是WS上的线程。
委托
在前面的反射实例中,也有用到委托执行方法。
这个例子是将一个方法或者委托实例作为另外一个函数的入参传递。
至于有什么用,我现在还没用上。
private delegate void Dosth(string s);//定义委托 无返回值 一个string参数
private void button2_Click_1(object sender, EventArgs e)
{
Dosth dosth = new Dosth(Func);//实例化委托,
DoMain(dosth);//DoMain(Func) 调用函数方法DoMain,入参可以是对应的方法Func也可以是委托实例化的后的dosth
}
private void Func(string s)
{
MessageBox.Show(s);
}
private void DoMain(Dosth fun) //方法DoMain 入参接收一个委托实例或者函数:返回值是空,入参是一个string
{
fun("hello world!");
}
事件
事件使用发布-订阅模型,事件在类中申明且生成,通过使用同一个类或者其他类中的委托与事件处理程序关联。
包含事件的类用于发布事件,被称为发布器,其他接收该事件的类称为订阅器。
发布器中描述的是怎么调用