WEB开发网
开发学院软件开发C语言 换一个角度理解委托和事件 阅读

换一个角度理解委托和事件

 2010-10-01 08:20:13 来源:WEB开发网   
核心提示: TheMethod(){……//里面的内容由其他人(专业点的词汇叫做“用户”)填写}哈哈,有点像了,换一个角度理解委托和事件(2),我们好像也是这样在buttonClick()方法里写实现程序的哟,这样做,class Program { sta

TheMethod(){
……//里面的内容由其他人(专业点的词汇叫做“用户”)填写
}

哈哈,有点像了。我们好像也是这样在buttonClick()方法里写实现程序的哟。

这样做,还是有问题,能不能想到?

现在我们是一个button,如果有两个button要实现各自不同的的功能呢,怎么办?我写两个if,哼!三个呢,四个呢……实际上,我做框架的时候还根本不知道会有多少个呢,唉~~

再想!

这就要回到最前面猜想的地方了。button和Listener之间是不是要有对应关系?

这种对应关系如何实现?

我们可以想象,计算机系统里面有一个管理鼠标点击button的监听中心,每个button都可以到这个中心“注册登记”他对应的方法,这样,当特定的button被点击时,监听中心可以根据之前的“登记”,执行相应的方法。

看上去上面的方法不错,赞自己一个。那么如何实现上面的构想呢?当然就是用委托和事件了。

可能你还是没怎么搞明白,我也一样,那我们试着动手写程序吧。为了脱离winform之类已有的框架,我们建一个控制台程序。

未使用委托、事件之前的代码。

class Program
    {
        static void Main(string[] args)
        {
            //实例化一个button类
            Button btn = new Button();
            btn.Click();
        }
    }

    //首先要定义一个Button类,里面应该有一个Click方法
    public class Button
    {
        //Click方法调用固定的方法
        public void Click()
        {
            ForCustome fc = new ForCustome();
            fc.Button_Click();
        }
    }
    //上面这个类是封装了的,用户不可见,或者理解为用户不能更改也可以

    //下面这个类提供给用户
    public class ForCustome
    {
        public void Button_Click()
        {
            //用户在这里写具体的方法实现
            Console.WriteLine("被点击了!");
        }

    }

上一页  1 2 3 4  下一页

Tags:一个 角度 理解

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