我眼中委托的真正面貌(一)
2009-05-07 08:26:53 来源:WEB开发网这段代码和上一段代码的意思大同小异,委托类型void MyDelegete()的声明被我移到了类的外面,当然这不影响大局。主要区别只在于这段代码涉及到了使用本类委托对象跨类包装其他类的方法细节问题——我把原来主类中的MyFun()方法移到了新声明的一个类ObjCls中,然后再靠主类中的委托对象去调用这个方法。
或许你可能会说,即使我不用委托,也可以通过在主类中声明其他的类对象,然后通过这个类对象来调用其他类的public方法。这样一来,使用委托依然没有什么实实在在的意义。
那么,呵…… 我们不妨继续耐心而深入的挖掘委托更深层次的用途
3.在本类中操控其他类的委托对象
namespace MulClsDelegate
{
public partial class Form1 : Form
{
ObjCls objcls = new ObjCls();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
objcls.MyObjdelegate += new ObjCls.MyDelegete(DelegateFun);
objcls.MyFun();
}
public void DelegateFun()
{
MessageBox.Show("次类委托所挂载的本类事件调用成功!");
}
}
public class ObjCls
{
public delegate void MyDelegete();
public MyDelegete MyObjdelegate;
public void MyFun()
{
MyObjdelegate();
}
}
}
更多精彩
赞助商链接