[原创]老鼠->猫->人 事件触发
昨天晚上某个群里的朋友说他在面试.NET的时候碰到这个“老鼠,猫,人事件触发”题了,答得不是很清楚,正好自己也很久没写自定义事件的代码了,早上起来就顺便写了个,发上来让大家找找茬。
在定义事件前首先要定义一个委托类型,以用于该事件,而且返回类型和参数必须匹配。
namespace www.csframework.com
{
public delegate void MessageHandler(); //消息委托
class Program
{
static void Main(string[] args)
{
Mouse m = new Mouse();
Cat c = new Cat();
Man man = new Man();
m.MouseMoving+=new MessageHandler(c.CatMove); //=>指定事件触发
c.CatMoving += new MessageHandler(man.ManMove);//=>指定时间出发
Console.WriteLine("Begin:");
m.MouseMove();
}
}
class Mouse
{
public event MessageHandler MouseMoving;
public void MouseMove()
{
Console.WriteLine("A mouse is moving.");
MouseMoving();
}
}
class Cat
{
public MessageHandler CatMoving;
public void CatMove()
{
Console.WriteLine("A cat find the mouse,and catches it.");
CatMoving();
}
}
class Man
{
public void ManMove()
{
Console.WriteLine("A man finds his cat are eating a mouse.");
}
}
}
{
public delegate void MessageHandler(); //消息委托
class Program
{
static void Main(string[] args)
{
Mouse m = new Mouse();
Cat c = new Cat();
Man man = new Man();
m.MouseMoving+=new MessageHandler(c.CatMove); //=>指定事件触发
c.CatMoving += new MessageHandler(man.ManMove);//=>指定时间出发
Console.WriteLine("Begin:");
m.MouseMove();
}
}
class Mouse
{
public event MessageHandler MouseMoving;
public void MouseMove()
{
Console.WriteLine("A mouse is moving.");
MouseMoving();
}
}
class Cat
{
public MessageHandler CatMoving;
public void CatMove()
{
Console.WriteLine("A cat find the mouse,and catches it.");
CatMoving();
}
}
class Man
{
public void ManMove()
{
Console.WriteLine("A man finds his cat are eating a mouse.");
}
}
}

参考文档:
TMS-物流运输管理系统《系统详细设计说明书》docx下载(原创文档)
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架
CSFramework.COM原创:全球国家名称列表国旗图标库导入程序(C#+VS2015)
原创:SQLJOB作业自动备份数据库并自动清除备份历史记录
【原创产品】自己开发MES系统软件,MES开发架构及MES客户端快速开发框架平台
【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress
原创:C#源码 GridMovetor按回车自动跳到下一列或自动新增记录(www.csframework.com)
原创:C/S架构快速开发框架通用可配置的数据修改日志解决方案
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
【原创】C# Winform Dev自动下拉弹框筛选数据PopupContainerEdit组件
【原创】C# Dev用户自定义组件,自动下拉弹框表格过滤数据组件ucMyLookUpEdit
【原创】C# 深度拷贝对象 使用.NET反射+递归原理实现深度克隆
【原创】简单快速软件开发平台,C/S架构二次开发平台
【原创】C# Winform进销存系统快速开发框架
原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库)
TMS-物流运输管理系统《系统详细设计说明书》docx下载(原创文档)
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
原创C/S架构开源软件 - C#.NET+Winform+Dev+SQL快速开发框架
CSFramework.COM原创:全球国家名称列表国旗图标库导入程序(C#+VS2015)
原创:SQLJOB作业自动备份数据库并自动清除备份历史记录
【原创产品】自己开发MES系统软件,MES开发架构及MES客户端快速开发框架平台
【原创】进销存软件开发模板基于C/S架构快速开发框架C#+Winform+DevExpress
原创:C#源码 GridMovetor按回车自动跳到下一列或自动新增记录(www.csframework.com)
原创:C/S架构快速开发框架通用可配置的数据修改日志解决方案
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
【原创】C# Winform Dev自动下拉弹框筛选数据PopupContainerEdit组件
【原创】C# Dev用户自定义组件,自动下拉弹框表格过滤数据组件ucMyLookUpEdit
【原创】C# 深度拷贝对象 使用.NET反射+递归原理实现深度克隆
【原创】简单快速软件开发平台,C/S架构二次开发平台
【原创】C# Winform进销存系统快速开发框架
原创Winform快速开发框架平台Oracle版本(三层架构+C#.NET+Oracle数据库)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
