• 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;


            }

        }

    }

  • 相关阅读:
    从尾到头打印链表
    剑指offer
    Codeforces Round #345
    算法入门系列之字符串
    【codenet】代码相似度计算框架调研 -- 把内容与形式分开
    【学习笔记--数据结构】合法的出栈序列与栈混洗
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    【PAT L2-001】最短路计数
    【CF689D Friends and Subsequences】二分搜索,区间查询
    【编译原理】语法分析LL(1)分析法的FIRST和FOLLOW集
  • 原文地址:https://www.cnblogs.com/silva/p/370565.html
Copyright © 2020-2023  润新知