C#委托--2档

上回让小弟去砍957,小弟没认出957,任务失败了。这次我得把详细的957资料给他。

 //这里我用完成的957信息作为传递参数。其实将957的名字作为传递参数也有好处,可以让某个小弟知道全部,某个小弟不知道全部信息,这样就不用担心信息泄漏了。

//传递的方法是继承自EventArgs,可以通过Invoke(传递的参数)触发事件。

    public delegate void XXEventHandler(Employer e);//EventHandler是委托的命名规则,我在帮派里叫XX
    public class Employer
    {
        //我想干掉的家伙叫957,身高175cm,是个IT者
        public int A = 957;
        public int Height = 175;
        public string Job = "IT";
        public event XXEventHandler XXEvent;
        //这次我用完整的信息传递(传递方法给委托对象是委托的精髓)
        public void OnEvent(Employer e)
        {
            if (XXEvent != null)//保险一点,看看二狗是不是收到信号了
            {
                XXEvent(e);//这里告诉小弟信息的地方,也是事件触发的关键
            }
        }
        //这回我还得控制下时间
        public void TimetoKill()
        {
            for (int i = 0; i < 100; i++)
            {
                if (i == 99)//时间到了 
                {
                    Employer e = new Employer();
                    OnEvent(e);
                }
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Employer boss = new Employer();
            //太多小弟,用一个小弟类专门管理
            Xiaodi x = new Xiaodi();
            //我想叫谁就得让先他待命着。

            boss.XXEvent += x.Ergou;

            //boss.XXEvent += x.SanDog;//SanDog接收的方式还是只有957的名字,而不是完整信息,因此SanDog无法执行任务。
            //时间到了,我的让他们杀957

            boss.TimetoKill();

            Console.ReadKey();
        }
    }
    class Xiaodi
    {
        public void Ergou(Employer g)
        {
            Console.WriteLine("ToDog: kill {0}\nmessage:\nHeight is {1}!\nJob", g.A, g.Height, g.Job);
        }
        public void SanDog(int A)
        {
            Console.WriteLine("SanDog: kill {0}!", A);
        }

    }

总结:信息传递要完整啊(957类作为传递参数),作为老大考虑的就得仔细(事件触发添加条件),还得让小弟专心去做(小弟接收的参数唯一),老大还是有一点难的呀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值