C#之委托

using System;


namespace CSharpInDepth
    {
    //1.首先声明委托类型
    delegate void StringProcessor ( string input );    
    class Person
    {
        string name;
        public Person ( string name ) { this .name = name; }
        //2.创建委托类型兼容的实例方法
        public void Say(string message)
            {
            Console .WriteLine ( "{0} says: {1}" , name , message );
            }
    }
    class Background
        {
            //3.创建委托类型兼容的静态方法
            public static void Note(string note)
            {
            Console .WriteLine ( "{0}" , note );
            }
        }
    class Program
        {
        static void Main ( string[] args )
            {
            Person jon = new Person ( "jon" );
            Person tom = new Person ( "tom" );
            //4.创建委托实例
            StringProcessor jonsVoice,tomsVoice,background;
            jonsVoice = new StringProcessor ( jon .Say );
            tomsVoice = new StringProcessor ( tom .Say );
            background = new StringProcessor ( Background .Note );
            //5.调用委托
            jonsVoice ( "hello,son" );
            //这里使用了显示的Invoke方式,一般情况下,使用上面的简化形式就可以了
            tomsVoice .Invoke ( "hello daddy" );
            background ( "An airplane crashed" );
            }
        }
    }
/*
 个人认为,委托的要义如下:
 * 不能仅仅由于你希望某事发生,就意味着你始终会在正确的时间和地点
 * 出现,并且亲自使之发生。有的时候,你需要一些指令——将职责委托给别人
 * C#中的委托和现实世界中的遗嘱一样,也是在恰当的时间执行一些列的操作。
 * 如果代码想要执行操作,但不知操作细节,一般可用委托。
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值