ITPub博客

首页 > Linux操作系统 > Linux操作系统 > C#中的委托

C#中的委托

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-02-01 15:49:48 0 删除 编辑

人说委托是oop的精髓所在,我虽然已经学了几个月的c#了,但对于委托一直都是视为禁区,不曾涉及,今日看毕一奇文,豁然而开,原来如此~

所谓委托,乃是定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。

 

 

 

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

namespace Delegate {
     //定义委托,它定义了可以代表的方法的类型
     public delegate void GreetingDelegate(string name);
        class Program
        {

           private static void EnglishGreeting(string name)
           {
               Console.WriteLine("Morning, " + name);
           }

           private static void ChineseGreeting(string name)
            {
               Console.WriteLine("早上好, " + name);
           }

           //注意此方法,它接受一个GreetingDelegate类型的方法作为参数
           private static void GreetPeople(string name, GreetingDelegate MakeGreeting)
            {
               MakeGreeting(name);
            }

           static void Main(string[] args)
           {
               GreetPeople("Jimmy Zhang", EnglishGreeting);
               GreetPeople("张子阳", ChineseGreeting);
               Console.ReadKey();
           }
        }
    }

输出如下:
Morning, Jimmy Zhang
早上好, 张子阳

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-544949/,如需转载,请注明出处,否则将追究法律责任。

下一篇: C# 指针复习示例
请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5425083