在C#中使用代理的方式触发事件 的简单习作
程序简单就 不再作说明了.
在学习IssueVision的OBSERVER(观察者)模式时由于对代理和事件不是很熟悉,遇到了一些问题,所以就有了这个简单习作.
TestEvent.cs
using System;
namespace ConsoleApplication2
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class TestEvent
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
TestEvent c = new TestEvent();
c.Test();
}
public void Test()
{
ChangeNumber number = new ChangeNumber();
number.BigEvent += new ChangeNumber.ChangeHandler(this.Big);
number.SmallEvent += new ChangeNumber.ChangeHandler(this.Small);
number.EqualEvent += new ChangeNumber.ChangeHandler(this.Equal);
number.Number = 1; //运行之前Number=0;
number.Number = 1; //运行之前Number=1;
number.Number = 0; //运行之前Number=1;
}
public void Big()
{
Console.WriteLine("big");
}
public void Small()
{
Console.WriteLine("small");
}
public void Equal()
{
Console.WriteLine("equal");
}
}
}
ChangeNumber.cs
using System;
namespace ConsoleApplication2
{
/// <summary>
/// Class2 的摘要说明。
/// </summary>
public class ChangeNumber
{
public delegate void ChangeHandler();
public event ChangeHandler BigEvent;
public event ChangeHandler SmallEvent;
public event ChangeHandler EqualEvent;
public ChangeNumber()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private int m_number = 0;
public int Number
{
set
{
if(value > this.m_number)
{
BigEvent(); //这时最好先判断一下BigEvent是不是为null
}
else if(value < this.m_number)
{
SmallEvent();
}
else
{
EqualEvent();
}
m_number = value;
}
}
}
}
转载于:https://www.cnblogs.com/zitiger/archive/2005/07/20/196376.html
在C#中使用代理的方式触发事件 的简单习作相关推荐
- 在C#中使用代理的方式触发事件 (委托和事件 ) (转)
From: http://www.cnblogs.com/gzhnan/articles/1859477.html 在C#中使用代理的方式触发事件 (委托和事件 ) 事件(event)是一个非常重要 ...
- 在C#中使用代理的方式触发事件
事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件.所谓事件就是由某个对象发出的消息.比如用户按下了某个按钮,某个文件发 ...
- vue中解决用户双击鼠标触发事件
1.可能在业务中会碰见这样的事情 就是用户双击 可以触发事件 单击也可以触发事件 问题是俩次要触发不同的事件 其实双击和单击的却别就是 双击是俩次 时间间隔特别小的 点击 组成的 这样我们可以通 ...
- vue中监听enter键触发事件
created(){window.addEventListener('keydown', this.handleKeyDown, true)//开启监听键盘按下事件 } methods: {handl ...
- html 卸载事件不执行,javascript – 如何在contenteditable中删除HTML元素时触发事件
您可以使用 MutationObserver来实现此目的.要跟踪从您的contenteditable元素中删除的任何类型的节点,请遵循以下示例 span var observer = new Muta ...
- JavaScript中的BOM操作的常见事件
BOM操作的常见事件 1.点击事件clcik onclcik绑定点击 标签ID.onclick = function(){ 程序: } 示例1. d1.onclick = function(){ co ...
- Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别
视频功能审核通过了,可以看视频啦!记得点关注啊~ 注意:因为网络原因,视频前一两分钟可能会比较模糊,过一会儿就好了 记得点关注啊,视频里的wx二维码失效了,wx搜索:"聊5毛钱的java&q ...
- 2011New_C#中的代理与事件_猫叫人醒鼠跑
(原创:http://hi.baidu.com/grayworm) 代理与事件是DotNet的两个重要概念,但好多朋友感觉没有这两个概念照样能够进行常规的DotNet开发.其实深入理解这两个概念对Do ...
- 使用jQuery中trigger()方法自动触发事件
一.常用事件 在页面加载完成时 自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click") ...
最新文章
- interface IEngineControl封装引擎通用操作
- leetcode算法题--最多的不重叠子字符串★★
- linux memcached 的安装
- Android关联启动查询数据库,VIVO X9怎么查看关联启动记录 VIVO X9查看关联启动记录教程...
- 组合模式_设计模式结构性:组合模式(CompositePattern)
- 使用github上已有的开源项目
- C# 页面关联类似模式窗口
- jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
- python获取对象的大小_Python实现计算对象的内存大小示例
- Spring MVC文件上传示例教程 - 单个和多个文件
- 从趣味游戏到排序算法(2)
- 迫不及待,英特尔推特“官宣”GPU发布时间
- mysql报错22_运行 mysql 遇到的两个报错
- 仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题
- 如何在ecshop订单中显示客户给商家的留言
- 如何在Mac视频中添加表情符号
- mysql 查询结果导出文件并导入文件到数据库
- 药品数据查询系统工具(非付费官网50个)
- 硬件工程师物料清单BOM对比工具
- 论文页眉设置奇数偶数页不同页眉,奇数页为各章题目,偶数页为论文题目
热门文章
- vue --- 使用vue-router获取带参数的路由
- 关于jQuery对象(类数组对象)以及DOM对象相互转化问题——[object Object]和[object HTMLInputElement]
- ZOJ4116 Game on a Graph
- Maven--资源文件resource的问题
- HTML学习笔记06-连接
- cisco 动态路由协议RIP笔记
- php 安装rabbitmq扩展无报错版
- [转] C# 路径(目录)
- 最优化作业第6章——无约束多维非线性规划方法
- html5 hr代码缩减比例,HTML HR size用法及代码示例