C#中代表

(摘自http://www.cnblogs.com/cuihongyu3503319/archive/2007/04/29/732376.html

代表(delegate):

 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现。下面来看看它的实现步骤:

  1. 声明一个delegate对象。
  2. 实现和delegate具有相同参数和返回值的函数实现(可以是静态和非静态的)。
  3. 产生一个delegate对象的时候,把你刚刚实现的函数作为参数传给他的构造函数。

看下面的例子:

    

using System;
using System.Collections.Generic;
using System.Text;

namespace @delegate

    public delegate void Mydelegate(string mydelegate);     //声明一个我的代表(第一步)
   
    class Program
    {   //实现一个与代表具有相同参数和返回值的函数(第二步)
        public void HelloDelegate(string mydelegate)       
        {
            Console.WriteLine(mydelegate);
        }
        //实现一个与代表具有相同参数和返回值的静态函数(第二步);注意与上者的区别
        public static void HelloStasticDelegate(string mydelegate)      
        {
            Console.WriteLine(mydelegate);
            Console.Read();
        }
        static void Main(string[] args)         //第三步
        {   //非静态成员方法的调用
            Program i = new Program();
            Mydelegate d = new Mydelegate(i.HelloDelegate);   //产生代表d,指向的是函数HelloDegegate
            d("Hello delegate");                //调用

            //静态成员方法的调用
            Mydelegate dd = new Mydelegate(Program.HelloStasticDelegate);
            dd("Hello static delegate");

        }
    }
}

 

 

 

posted @ 2009-11-06 22:23  小冠  阅读(627)  评论(0)    收藏  举报