黑马程序员---对委托的一点理解

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

委托是一个类,它定义了方法的类型,使得可以将方法当做另一个方法的参数来进行传递。这种将方法动态地赋给参数的做法,避免了在程序中大量使用条件选择语句,同时使程序具有更好的可扩展性。使用委托还可以将多个方法绑定到同一个委托变量,当调用此变量时,可以依次调用所有绑定的方法。

class Program
    {
        static void Main(string[] args)
        {
            //声明一个委托类型的对象handler,即将委托实例化了,并把对它进行的方法调用传递给方法,即调用方handler传递给委托的参数,hello world 被传递给方法DelegateMethod,来自方法的返回值由委托返回给调用方,
            //创建委托方法
            MyDelegate handler = DelMethod;
            //调用委托
            handler("hello, world");
            Console.ReadKey();
        }
        //下述语句声明了一个名为MyDelegate的委托,该委托可以封装一个采用字符串作为参数并返回oid的方法
        public delegate void MyDelegate(string message);  //创建委托方法
        public static void DelMethod(string message)      //定义了一个静态方法,message代表的值将由定义的委托MyDelegate返回给调用方
        {
            System.Console.WriteLine(message);
        }
        
    }
理解委托的一个好方式是把委托的作用当做是给方法签名指定名称。

总结:委托其实也只是一个类,它派生自System.MulticastDelegate。

           既然委托是一个类,那它实例化出来的当然也是一个对象,它存储了一个类的方法的引用。

   委托是一个定义签名的类型,即方法的返回值类型和参数列表类型。

           可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。














---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值