zoukankan      html  css  js  c++  java
  • c#中委托的概念一个总结demo

    this.btn_confirm.Click += new System.EventHandler(this.btn_confirm_Click);

    System.EventHandler这个就是API的一种委托类型,你再问它是啥,我还是告诉你这是一种API的委托类型!

    这个么。。。。咋说,就是个事件的生命,btn_confirm.Click是按钮的事件属性,+=是重载的运算符,new System.EventHandler(this.btn_confirm_Click);这里就是委托了,你看this.btn_confirm_Click这个是方法,方法作为参数,说白一点就是用户通知程序一个事情,程序去做一个事情!恩 就这么个意思 = =! 

    比如说,小明的妈妈告诉小明去打酱油,妈妈就是用户,告诉小明的内容就是消息,小明得到消息后可以判断是打酱油,打酱油方法里边有怎么打酱油的详细实现过程,比如先到商店,给钱,拿酱油,回家!

    也就等同于,Click是标定好的一种行为名称,相当于打酱油,这种行为的具体实现是用户自定义的,也就是btn_confirm_Click,也就是打酱油的具体方法,妈妈就是用户,小明就是这个btn_confirm按钮,用户点了按钮,就相当于妈妈告诉了小明打酱油!我不知道这么解释行不行啊。。。反正我一路上都这么理解的!

    如果你要想给BUTTON重新定义一种事件委托,那你就继承BUTTON然后重写他,你想加啥就加啥

    public class Test
    {
    public delegate void NewDelegate();
    public NewDelegate TestDelegate;//委托
    public static event TestDelegate TestEvent;//事件 
    
    //比如你有一个按钮的CLICK响应时间,你就可以在这里调用
    private void Button1_Click(object sender, EventArgs e)
    {
       TestDelegate();//执行委托
       TestEvent();//执行事件
    }
    }
    
    
    public Class Test2
    {
    Test test=new Test();
    test.TestDelegate=this.DoSomeThing;
    Test.TestEvent+= new Test.TestDelegate(DoSomeThing);
    void DoSomeThing()
    {
       //you can do something here
    }
    }
    
  • 相关阅读:
    Linux 下安装配置 JDK7
    win7下virtualbox装linux共享win7文件问题(已测试可用)
    Linix常用命令
    JAVA命令大全
    virtualbox 不能为虚拟电脑打开一个新任务/VT-x features locked or unavailable in MSR.
    VirtualBox下安装rhel5.5 linux系统
    redhat RHEL 5.5 下载地址
    ios开发@selector的函数如何传参数/如何传递多个参数
    U盘10分钟安装linux系统
    史上最浅显易懂的Git分布式版本控制系统教程
  • 原文地址:https://www.cnblogs.com/smallerpig/p/2281989.html
Copyright © 2011-2022 走看看