事件
来源:互联网 发布:囚徒健身软件 编辑:程序博客网 时间:2024/04/28 18:47
C#算法一道面试题:程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
以下是我的答案,希望各位朋友发表自己的看法:
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleApplication12
{
delegate void Test();//事件的签名以委托的形式定义,并定义在类的外面
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse m = new Mouse(cat);
Person p = new Person(cat);
while(true)
{
Console.WriteLine("按Enter键场景开始");
Console.ReadLine();
cat.catJiao();
Console.ReadLine();
}
}
}
class Cat //监听类
{
public event Test test;//不可声明在方法中,且一定要将访问修饰符定为公共的,否则其它类难以访问
public void catJiao()
{
Console.WriteLine("猫开始叫");
if (test != null)//判断事件对象是否为空
{
test();//触发事件
}
}
}
class Mouse
{
public Mouse(Cat c)//以监听类为参数
{
c.test+=new Test(mouseRun);//订阅事件,只需要写方法名
}
public void mouseRun()//事件处理
{
Thread.Sleep(500);
Console.WriteLine("老鼠开始逃跑");
}
}
class Person
{
public Person(Cat c)//以监听类为参数
{
c.test+=new Test(personWake);//订阅事件
}
public void personWake()//事件处理
{
Thread.Sleep(1000);
Console.WriteLine("主人醒");
}
}
}
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- android 再按一次后退键退出应用程序
- ANSI C标准函数库
- Linux JAVA环境变量设置
- C#调用系统API指定快捷键
- Algorithm Gossip: 中序式轉後序式(前序式)
- 事件
- 240多个jQuery_UI插件
- Ural 1019 A Line painting(线段树,成段更新离散化)
- SQL中的时间相加减
- android 设置Button或者ImageButton的背景透明 半透明 透明
- 【讲座笔记】微软人谈IT职业发展
- Android 为CheckBoxPreference Preference 控件添加样式
- js openWin详解 滚动条
- JAVA 用freemaker(xml)生成word下载