zoukankan      html  css  js  c++  java
  • Event Mechanism in C#

    1.what is Event in C#
           simplely speaking,Event  in C# is that as one instance does one behaviour, it will receive the message and then react with the message.

    2.Event Happening&Re-acting Mechanism

    3.how to declare a Event
        i.first declare a delegte
        ii.secondly declare repective Event
        like the following codes:
            public delegate void MyNewEvent(|object sender|,|MyEventArgs e|);
            public event MyNewEvent OnMyNewEvent;

    4.Event Demo project
        E.g. Cat& Mouse problem.
                A mouse wanna steal something, at the same time, A cat is tracking him. Once the mouse is stealing , it will touch something and make noise. and then, the cat will know the mouse is stealing and receive the message and re-act at once. please create a project to realiaze this schema.
                the codes are following:

    namespace CatMouse
    {

        public class mouse
        {
           
    public delegate void MouseSteel(string food);
            public event MouseSteel OnMouseSteel;  //declare an Event
         

        public void MouseIsSteeling(string food)
            {
                Console.WriteLine("Sender side: I am a mouse , I am steeling {0}\n", food);
                if (OnMouseSteel != null)
                    //if there exists a listener who is listen to this event,  OnMouseSteel object will not be null; else it will be null;
                    OnMouseSteel(food);
            }
          
        }


        public class cat
        {
            public cat(mouse tmp_mouse)
            {
                this.A_mouse = tmp_mouse;
               
    A_mouse.OnMouseSteel += new mouse.MouseSteel(A_mouse_OnMouseSteel);
                // once the mouse is stealing, the cat will re-act by  method <A_mouse_OnMouseSteel>
            }

            void A_mouse_OnMouseSteel(string food)
            {
                Console.WriteLine("Receiver side: Cat ! A mouse is steeling {0}\n", food);
              
            }
            private mouse A_mouse;

        }
        class Program
        {
            static void Main(string[] args)
            {
                mouse A_mouse=new mouse();
                cat A_cat = new cat(A_mouse);
                A_mouse.MouseIsSteeling("bread");
                A_mouse.MouseIsSteeling("fish");
                A_mouse.MouseIsSteeling("milk");
                A_mouse.MouseIsSteeling("butter");
                Console.Read();
            }
        }
    }

            and if everything works well, we will such window:

    congratulations! :)

  • 相关阅读:
    20145310《信息安全系统设计基础》第二周学习总结
    20145310《信息安全系统设计基础》第一周学习总结
    20145310 第0周《信息安全系统设计基础》学习总结
    课程总结
    20145310《Java程序设计》第5次实验报告
    20145310 《Java程序设计》第10周学习总结
    20145310 《Java程序设计》第9周学习总结
    20145310《Java程序设计》第4次实验报告
    20145310《Java程序设计》第3次实验报告
    git的安装以及遇到的问题
  • 原文地址:https://www.cnblogs.com/Winston/p/1131335.html
Copyright © 2011-2022 走看看