c#的事件机制示例代码: 猫-> 老鼠, 主人

 

ContractedBlock.gif ExpandedBlockStart.gif Code
   
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;


        }
    }
}

转载于:https://www.cnblogs.com/shengel/archive/2008/09/03/1282742.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值