代表(delegate)(转)

代表(delegate):

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

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

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

namespace UsingDelegate
{
    public delegate void MyDelegate(string mydelegate);//声明一个delegate对象

    public class TestClass
    {

        //实现有相同参数和返回值的函数
        public void HelloDelegate(string mydelegate)
        {
            Console.WriteLine(mydelegate);
        }

       //实现有相同参数和返回值的静态函数

        public static void HelloStaticDelegate(string mystaticdelegate)
        {
            Console.WriteLine(mystaticdelegate);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            TestClass testClass = new TestClass();
            MyDelegate mydelegate = new MyDelegate(testClass.HelloDelegate);//产生delegate对象
            mydelegate("Hello delegate");//调用

            MyDelegate myStaticDelegate = new MyDelegate(TestClass.HelloStaticDelegate);//产生delegate对象
            myStaticDelegate("Hello static delegate");//调用
        }
    }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////

using System;
namespace  MinT
{
    class  MinTest
    {
        public delegate void getName();
        public getName get_name;
        public MinTest( getName  get_name )
        {
            this.get_name = get_name;
        }
    }
    class Provide
    {
        public void PrintName()
        {
            Console.WriteLine("my name is vlisa");
        }
    }
    class TheApp
    {
        static void Main( )
        {
            Provide prde = new Provide();

            MinTest mintest = new MinTest(prde.PrintName);
            mintest.get_name();
        }
    }
}
//////////////
//my name is vlisa
//////////////////////////////////////////////////////////////

 
posted @ 2009-04-06 11:35  thinkpore  阅读(161)  评论(0)    收藏  举报