zoukankan      html  css  js  c++  java
  • C# 委托

    基本步骤

    (1)定义委托类型,其定义类似方法的定义,只是多了一个delegate;

    (2)实例化委托,委托也是属于类类型所以用也用new关键字实例化;

    委托的实例化用一个方法名作为参数,并且该方法的定义必须符合委托的定义;

    即参数个数、参数类型、返回类型与委托一样

    (3)把委托实例化的对象当参数传递给其他方法或直接执行委托(实质就是在执行委托包装的方法);

    C#委托可以理解为函数的包装,他可以使方法作为参数来传递给另一个方法

    --委托是类类型--委托实例可以调用方法

    例:

     1 class HelloWorld
     2    {
     3       //定义委托类型,其定义类似方法的定义,只是多了一个delegate;
     4       delegate void Mydelegate(int a,int b);
     5       static void Main(string[] args)
     6       {
     7          //声明与实例化委托变量
     8          Mydelegate mydelegate=new Mydelegate(new HelloWorld().Add);
     9          //将实例化的对象mydelegate作为参数传递给方法
    10          new HelloWorld().Go(mydelegate);
    11          Console.ReadKey();
    12       }
    13       void Add(int a=0,int b=0)
    14       {
    15           Console.Write("This sum is {0}",a+b);
    16       }
    17        private void Go(Mydelegate mydelete)
    18        {
    19            //在方法中调用委托(隐式调用)
    20            mydelete(10,20);
    21            //(显式调用)委托是类类型 委托实例可以调用方法Invoke方法是委托的内置方法
    22            //隐式实质也是调用Invoke方法执行的
    23            mydelete.Invoke(10,20);
    24            
    25        }
    26    }

    结果为:

  • 相关阅读:
    149. Max Points on a Line(js)
    148. Sort List(js)
    147. Insertion Sort List(js)
    146. LRU Cache(js)
    145. Binary Tree Postorder Traversal(js)
    144. Binary Tree Preorder Traversal(js)
    143. Reorder List(js)
    142. Linked List Cycle II(js)
    141. Linked List Cycle(js)
    140. Word Break II(js)
  • 原文地址:https://www.cnblogs.com/lbonet/p/6894116.html
Copyright © 2011-2022 走看看