码迷,mamicode.com
首页 > Windows程序 > 详细

C# 委托与事件

时间:2017-07-13 14:16:16      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:动作   null   blog   rgs   test   自动完成   str   函数   对象   

c#事件 委托:

    1.类似观察者模式。
    2.当某个对象(类),执行某个动作时,之前委托的事情会自动完成。
    (如B,C订阅A的事件,当A执行某动作,B和C均会按照约定进行对应动作)



使用步骤:

    1.定义 delegate委托类,event 事件
        
        //首领A:举杯委托
    public delegate void RaiseEventHandler(string hand);
        public class A
        {
        
        // 首领A:举杯事件      
        public event RaiseEventHandler RaiseEvent;
    
      
    2.绑定事件对应的函数
        // 举杯
        public void Raise(string hand)
        {
            Console.WriteLine("首领A{0}手举杯", hand);
            // 调用举杯事件,传入左或右手作为参数
            if (RaiseEvent!=null)
            {
                RaiseEvent(hand);
            }
        }


    

    


    3.编写约定


     public class B
        {
            A a;

            public B(A a){
            this.a = a;
            a.RaiseEvent += new RaiseEventHandler(a_RaiseEvent); // 订阅举杯事件
              
                    }
         
        // 首领举杯时的动作     
        void a_RaiseEvent(string hand)
        {
            if (hand.Equals("左"))
            {
                Attack();
            }
        }
      
        // 约定的攻击函数   
        public void Attack()
        {
            Console.WriteLine("部下B发起攻击,大喊:猛人张飞来也!");
        }
    }



    4.测试

    class Test{
        static void Main(string[] args){
            A a = new A(); // 定义首领A
 
            // 首领A左手举杯
            a.Raise("左");

            // 首领A右手举杯
            //a.Raise("右");
 
         
            // 由于B和C订阅了A的事件,所以无需任何代码,B和C均会按照约定进行动作。
                }
        }

 

 

原文:http://www.cnblogs.com/yinqixin/p/5056307.html

C# 委托与事件

标签:动作   null   blog   rgs   test   自动完成   str   函数   对象   

原文地址:http://www.cnblogs.com/j2ee-web-01/p/7160012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!