博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事件模拟场景经典例子
阅读量:4560 次
发布时间:2019-06-08

本文共 2463 字,大约阅读时间需要 8 分钟。

编辑器加载中...
using
System;
using
System.Collections.Generic;
using
System.Text;
namespace
NET.MST.Sixth.CatCry
{
class
MainClass
{
static
void
Main(
string
[] args)
{
//
开始模拟场景
Console.WriteLine(
"
开始模拟
"
);
Cat cat
=
new
Cat(
"
汤姆猫
"
);
Mouse mouse1
=
new
Mouse(
"
米老鼠
"
, cat);
Mouse mouse2
=
new
Mouse(
"
杰瑞鼠
"
, cat);
Master master
=
new
Master(
"
朱毅
"
, cat);
cat.CatCry();
Console.Read();
}
}
#region
cat
///
<summary>
///
猫类型
///
维护猫叫事件
///
</summary>
public
class
Cat
{
///
<summary>
///
猫名
///
</summary>
private
String _name;
///
<summary>
///
猫叫的事件
///
</summary>
public
event
EventHandler
<
CatCryEventArgs
>
CatCryEvent;
///
<summary>
///
构造方法
///
</summary>
///
<param name="name"></param>
public
Cat(String name)
{
_name
=
name;
}
///
<summary>
///
触发猫叫事件
///
</summary>
public
void
CatCry()
{
CatCryEventArgs args
=
new
CatCryEventArgs(_name);
Console.WriteLine(args);
CatCryEvent(
this
, args);
}
}
///
<summary>
///
猫叫事件的参数
///
</summary>
public
class
CatCryEventArgs : EventArgs
{
//
发出叫声的猫的名字
private
String _catname;
public
CatCryEventArgs(String catname):
base
()
{
_catname
=
catname;
}
///
<summary>
///
输出参数内容
///
</summary>
///
<returns></returns>
public
override
string
ToString()
{
return
_catname
+
"
叫了
"
;
}
}
#endregion
#region
Master
///
<summary>
///
主人类型
///
</summary>
public
class
Master
{
///
<summary>
///
主人名字
///
</summary>
private
String _name;
///
<summary>
///
构造方法,订阅事件
///
</summary>
///
<param name="name"></param>
///
<param name="cat"></param>
public
Master(String name, Cat cat)
{
_name
=
name;
cat.CatCryEvent
+=
CatCryHandler;
}
///
<summary>
///
猫叫事件处理方法
///
</summary>
///
<param name="sender"></param>
///
<param name="args"></param>
private
void
CatCryHandler(
object
sender, CatCryEventArgs args)
{
WakeUp();
}
///
<summary>
///
惊醒方法
///
</summary>
private
void
WakeUp()
{
Console.WriteLine(_name
+
"
醒了
"
);
}
}
#endregion
#region
mouse
///
<summary>
///
老鼠类型
///
</summary>
public
class
Mouse
{
///
<summary>
///
老鼠名字
///
</summary>
private
String _name;
public
Mouse(String name, Cat cat)
{
_name
=
name;
cat.CatCryEvent
+=
CatCryHandler;
}
///
<summary>
///
猫叫事件处理方法
///
</summary>
///
<param name="sender"></param>
///
<param name="args"></param>
private
void
CatCryHandler(
object
sender, CatCryEventArgs args)
{
Run();
}
///
<summary>
///
逃跑方法
///
</summary>
private
void
Run()
{
Console.WriteLine(_name
+
"
逃走了
"
);
}
}
#endregion
}

转载于:https://www.cnblogs.com/brainmao/archive/2011/07/12/2104343.html

你可能感兴趣的文章
利用qt打开一张图片并转成灰度矩阵
查看>>
Mysql基础
查看>>
(转)JavaScript正则表达式符号详解
查看>>
python 中的 try/except/else/finally语句
查看>>
你真的理解devDependencies和dependencies区别吗?
查看>>
const与指针的运用
查看>>
[BZOJ2730][HNOI2012]矿场搭建 点双 割点
查看>>
深夜的讨论——关于团队分工,以及我想到了一些关于国企的事情
查看>>
多校第4场1012
查看>>
年终总结,我为什么离开舒适区?
查看>>
BZOJ2143 飞飞侠 & [校内NOIP2018模拟20181026] 最强大脑
查看>>
Linux/Mac 挂载远程服务器目录到本地
查看>>
1,实现在线答题 2,答题结束后可以判断对错 3,并将错题的结果保存起来。...
查看>>
JS中原始值和引用值的储存方式
查看>>
初学C#的简单编程题合集(更新)
查看>>
Linux学习闲谈(一)——Shell基本操作与命令
查看>>
写日志文件
查看>>
jvm 学习 二
查看>>
Date的格式转换
查看>>
RAC中SID,instance_number,thread#,undotbs之间的关系
查看>>