C# 委托

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

namespace CON_delegate
{
    //委托类似于C语言的函数指针,一个委托类型的实例变量指向一个方法,
    //方法地签名要和委托的签名一致,类型安全。
    //委托可以指向多个方法,使用"+="操作符。
    public delegate void Delegate_FruitName();
    class Program
    {
        static void Main(string[] args)
        {
            Apple apple = new Apple();
            Banana banana = new Banana();
            ShowName(apple.AppleName);//将方法作为参数传递
            ShowName(banana.BananaName);//将方法作为参数传递
            Console.ReadLine();

        }

        public static void ShowName(Delegate_FruitName fruitname)//委托类型的变量做参数
        {
            fruitname();//委托的实例变量指向一个方法
        }
    }

    class Apple
    {
        public void AppleName()
        {
            Console.WriteLine("My name is Apple!");
        }

    }

    class Banana
    {
        public void BananaName()
        {
            Console.WriteLine("My name is Banana!");
        }

    }
}

posted on 2012-02-09 18:11  Dibowe  阅读(114)  评论(0编辑  收藏  举报