WEB开发网
开发学院软件开发C语言 我眼中委托的真正面貌(一) 阅读

我眼中委托的真正面貌(一)

 2009-05-07 08:26:53 来源:WEB开发网   
核心提示: 所以,C#中的事件本身就是一种(多重)委托机制,我眼中委托的真正面貌(一)(6),凭借关键字event,使得我们在控件中定义好的事件专用委托实例对象在顶层的Demo程序的事件窗口中被自动识别,改用纯委托对象来实现,而后,也就是说,即使不用事件

所以,C#中的事件本身就是一种(多重)委托机制,凭借关键字event,使得我们在控件中定义好的事件专用委托实例对象在顶层的Demo程序的事件窗口中被自动识别。也就是说,即使不用事件,纯用委托,事件的机制一样可以实现,问题只是这样的委托对象无法轻易被外界识别罢了。

5.纯用委托仿真控件的事件机制

首先,我们依然建立一个控件项目,比之上一段代码作如下调整:

namespace Ctrleven

{

    public partial class UserControl1 : UserControl

    {

        //定义委托

        public delegate void MyEventHander();

 

        //用委托声明事件

        public MyEventHander MyEvent;//纯用委托仿真event对象

 

        public UserControl1()

        {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            MyEvent();

        }

    }

}

在这里我们去掉了event关键字,改用纯委托对象来实现。

而后,同样建立一个上层的Demo程序来调用这个控件,同样比之上一段代码要作些许细微的调整:

namespace EventDemo

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            this.userControl11.MyEvent += new Ctrleven.UserControl1.MyEventHander(this.VirtualEvent);

        }

 

        public void VirtualEvent()

        {

            MessageBox.Show("委托仿真事件调用成功!");

        }

    }

}

上一页  1 2 3 4 5 6 7  下一页

Tags:眼中 委托 真正

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接