zoukankan      html  css  js  c++  java
  • C#委托和事件。

             因为最近在学C#,还是坚持每天对昨天的学习做一个总结,昨天学的是委托和事件。以下是个人对委托和事件的理解,不当之处还请批评指正。

      委托:就象我们日常生活中的代理吧,象委托同学买火车票一样,你(触发事件)要给同学身份证和钱(作为参数),同学才执行买这个动作(方法),返回的就是你的一张票(返回值)。委托因为它也是一个引用类型,所以要用到他的时候都要实例化它,一个是在没有事件的情况下,怎么运用委托。

    public delegate void MyDelegate1();//说明方法中没有参数和返回值。

    public delegate int MyDelegate2(int a,int b);//方法中带两个参数,返回值为int 类型。

    static void Main(string[] args)
            {

                 Program p=new Program();

                  MyDelegate1 de1=new MyDelegate1(p.Hello);//实例化一个委托对象,和方法产生关联。

                  de1();//调用

                  MyDelegate1 de=de1+new MyDelegate1(p.Say);//也可以相加

                   de();//先调用de1()的。

                  MyDelegate2 de2=new MyDelegate2(p.Sum);

                 Console.WriteLine(de2(23,56));//

                  
          }

       Public void Say()

      {

        Console.WriteLine("Say Hi");

       }

       Public void Hello()

       {

            Console.WriteLine("Hello");

       }

      Public int Sum(int a,int b)

       {

         return a+b;

        }

    上面没有用到事件来触发,下面写一下事件的触发,怎么实现。

    public delegate void  Mydelegate1();//声明委托

    public event Mydelegate1 MyEvent;//声明事件,并指定他的委托。

     static void Main(string[] args)
            {
                Program p=new Program();
                p.MyEvent = new Mydelegate1(p.Hello);

                p.Raise();

            }

    Public void Raise()

    {

    if(MyEvent!=null)

    {

    MyEvent();

    }

    }

    public void Hello()

    {

    Console.WriteLine("Hello");

    }

     //当看到winform里面

    this.Load += new System.EventHandler(this.Form1_Load);这也是一个委托的实例。

  • 相关阅读:
    一些业内有名的网站收集
    WCF重载
    FCKEditor fckconfig.js配置,添加字体和大小 附:中文字体乱码问题解决
    查询第几条到第几条的数据的SQL语句
    SPOJ 9939 Eliminate the Conflict
    UVA 10534 Wavio Sequence
    HDU 3474 Necklace
    POJ 2823 Sliding Window
    UVA 437 The Tower of Babylon
    UVA 825 Walking on the Safe Side
  • 原文地址:https://www.cnblogs.com/netlove/p/1776993.html
Copyright © 2011-2022 走看看