zoukankan      html  css  js  c++  java
  • c#的事件机制示例代码: 猫> 老鼠, 主人

    using System;

    namespace EventDemo
    {


        
    public delegate void CatBrayEventHandle(int score);


        
    public class sleeping
        
    {
            
    public event CatBrayEventHandle CatShout;

            
    int theScore;

            
    public int Score
            
    {
                
    get {return theScore;}
                
    set
                
    {
                    
    if(theScore != value)
                    
    {
                        CatShout(value);
                    }

                }

            }

        }





        
    public class MouseRun
        
    {
            
    public MouseRun(sleeping slp)
            
    {
                slp.CatShout 
    += new CatBrayEventHandle(slp_CatShout);
            }


            
    private void slp_CatShout(int score)
            
    {
                
    if(score > 100)
                    Console.WriteLine(
    "老鼠: 有猫!快逃啊..");
                
    else
                    Console.WriteLine(
    "老鼠: 猫虽然叫了, 声音不够大, 赫赫, 老鼠没听见!");
            }

        }



        
    public class Master
        
    {
            
    public Master(sleeping sleep)
            
    {
                sleep.CatShout 
    += new CatBrayEventHandle(sleep_CatShout);
            }


            
    private void sleep_CatShout(int score)
            
    {
                
    if(score > 100)
                    Console.WriteLine(
    "主人: 猫叫了!");
                
    else
                    Console.WriteLine(
    "主人: 猫虽然叫了, 声音不够大, 主人没听见!");
            }

        }





        
    /// <summary>
        
    /// Class1 的摘要说明。
        
    /// </summary>

        class Class1
        
    {
            
    /// <summary>
            
    /// 应用程序的主入口点。
            
    /// </summary>

            [STAThread]
            
    static void Main(string[] args)
            
    {
                sleeping slping 
    = new sleeping();

                MouseRun mr 
    = new MouseRun(slping);
                Master ms 
    = new Master(slping);

                
    //slping.Score = 66;
                slping.Score = 123;


            }

        }

    }

  • 相关阅读:
    struct/enum/union加typedef与不加typedef
    拷贝构造函数、拷贝运算符、析构函数
    TextQuery程序
    动态内存-动态数组
    动态内存
    动态内存
    matlab文件处理
    [leetcode]_Best Time to Buy and Sell Stock I && II
    [leetcode]_Valid Palindrome
    [leetcode]_Pascal's Triangle II
  • 原文地址:https://www.cnblogs.com/silva/p/370565.html
Copyright © 2011-2022 走看看