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:

  • 相关阅读:
    UEditor中多图上传的bug
    Mysql 5.5 数据库命令大全
    Android学习书籍
    众方中继使用说明
    MyEclipse 2015优化技巧
    Android studio1.3.1 快捷键
    你有没有这样的猜疑?
    右键新建没有Word_Excel_PowerPoint的解决方法
    电脑清理桌面快捷图标小箭头
    Spring3.1+Hibernate3+Struts2的最新整合所需要的jar包
  • 原文地址:https://www.cnblogs.com/homchou/p/2889116.html
Copyright © 2011-2022 走看看