zoukankan      html  css  js  c++  java
  • .net Delegate

    委托和事件这两个概念是完全配合的。委托可以看成是函数指针,那就是说,它能够引用对象方法,通过传递地址的机制完成。委托是一个类,当你对它实例化时,要提供一个对象方法,将其作为它构造函数的参数。

    每一个委托都有自己的签名,例如:Delegate int SomeDelegate(string s, bool b);是一个委托声明,在这里,提及的签名,就是说SomeDelegate 这个委托有 string 和 bool 类型的形参,返回一个int 类型。

    上面提及的:当你对委托实例化时,要提供一个对象方法(引用函数),将其作为它构造函数的参数。这里要注意了:被引用的这个函数必须和委托有相同的签名。

    Demo:

     1 using System;
     2 
     3 namespace ConsoleApplication3
     4 {
     5     public delegate void GreetingDelegate(string name);//声明委托
     6     class Program
     7     {
     8         public static void GreetPeople(string name, GreetingDelegate gd)//委托形参
     9         {
    10             gd(name);
    11         }
    12         public static void EnglishGreeting(string name)
    13         {
    14             Console.WriteLine("morning, " + name);
    15         }
    16         public static void ChineseGreeting(string name)
    17         {
    18             Console.WriteLine("早上好, " + name);
    19         }
    20         static void Main(string[] args)
    21         {
    22             GreetPeople("周鸿", ChineseGreeting);//方法作为委托对象
    23             GreetPeople("chouhom", EnglishGreeting);
    24             Console.ReadKey();
    25         }
    26     }
    27 }

    Resut:

  • 相关阅读:
    spring 09-Spring框架基于QuartZ实现调度任务
    spring 08-Spring框架Resource资源注入
    spring 07-Spring框架Resource读取不同资源
    spring 06-Spring框架基于Annotation的依赖注入配置
    html 默认跳转
    poi 设置样式
    支付宝扫码支付回调验证签名
    构造器初始化
    cxf webservice
    CSS3 border-image 属性
  • 原文地址:https://www.cnblogs.com/homchou/p/2889116.html
Copyright © 2011-2022 走看看