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);这也是一个委托的实例。

  • 相关阅读:
    HTML5 ④
    HTML5 ③
    HTML5 ②
    HTML5 ①
    what’s this?
    第一篇
    2017年3月1号课堂笔记
    2017年2月27号课堂笔记
    2017年2月24号课堂笔记
    2017.02.15课堂笔记
  • 原文地址:https://www.cnblogs.com/netlove/p/1776993.html
Copyright © 2011-2022 走看看