你的位置:首页 > ASP.net教程

[ASP.net教程]写给自己看的C#委托笔记


  首先先套用一下书中对于委托的描述

  什么是委托,法庭上律师为当事人辩护,他真正执行的是当事人的陈词,律师就相当于一个委托对象,而当事人则委托律师对象为自己辩护。

  C#中的委托概念就好比律师对象,它是一个类(“委托是类类型”),因为只有类对象才有对象的概念。

  C#中的委托可以理解为函数的一个包装,它可以使函数作为参数来传递,这在作用上相当于C++的函数指针。

  委托的定义和方法的定义类似,只是在定义的前面加了一个关键词delegate:

    public delegate void myDelegate(string name);

  委托能包装的方法需要满足一定条件,就是要与委托返回类型相同,参数个数、顺序、类型相同,比如:

    public void myMethod1(string myName);

    public void myMethod2(string yourName);

  了解了委托是什么之后,开始一个小例子来使用它

using System;namespace delegateHello{  //语言委托  class People  {    //使用delegate关键字来定义一个委托类型    public delegate void helloDelegate(string name);    public void hello(string name,helloDelegate helloLanguage)    {      //调用委托        helloLanguage (name);    }    //美国人打招呼    public void helloEnglish(string name)    {        Console.WriteLine ("Hello,{0}", name);    }    //中国人打招呼    public void helloChinese(string name)    {        Console.WriteLine ("你好,{0}", name);    }      public static void Main (string[] args)    {        People man = new People ();        man.hello ("Lucy", man.helloEnglish);        man.hello ("李华", man.helloChinese);        Console.Read ();      //Console.WriteLine ("Hello World!");    }  }}