程序简单就 不再作说明了.
在学习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#中使用代理的方式触发事件 的简单习作相关推荐

  1. 在C#中使用代理的方式触发事件 (委托和事件 ) (转)

    From:  http://www.cnblogs.com/gzhnan/articles/1859477.html 在C#中使用代理的方式触发事件 (委托和事件 ) 事件(event)是一个非常重要 ...

  2. 在C#中使用代理的方式触发事件

    事件(event)是一个非常重要的概念,我们的程序时刻都在触发和接收着各种事件:鼠标点击事件,键盘事件,以及处理操作系统的各种事件.所谓事件就是由某个对象发出的消息.比如用户按下了某个按钮,某个文件发 ...

  3. vue中解决用户双击鼠标触发事件

    1.可能在业务中会碰见这样的事情  就是用户双击 可以触发事件 单击也可以触发事件  问题是俩次要触发不同的事件 其实双击和单击的却别就是 双击是俩次 时间间隔特别小的 点击 组成的  这样我们可以通 ...

  4. vue中监听enter键触发事件

    created(){window.addEventListener('keydown', this.handleKeyDown, true)//开启监听键盘按下事件 } methods: {handl ...

  5. html 卸载事件不执行,javascript – 如何在contenteditable中删除HTML元素时触发事件

    您可以使用 MutationObserver来实现此目的.要跟踪从您的contenteditable元素中删除的任何类型的节点,请遵循以下示例 span var observer = new Muta ...

  6. JavaScript中的BOM操作的常见事件

    BOM操作的常见事件 1.点击事件clcik onclcik绑定点击 标签ID.onclick = function(){ 程序: } 示例1. d1.onclick = function(){ co ...

  7. Java中动态代理的两种方式JDK动态代理和cglib动态代理以及区别

    视频功能审核通过了,可以看视频啦!记得点关注啊~ 注意:因为网络原因,视频前一两分钟可能会比较模糊,过一会儿就好了 记得点关注啊,视频里的wx二维码失效了,wx搜索:"聊5毛钱的java&q ...

  8. 2011New_C#中的代理与事件_猫叫人醒鼠跑

    (原创:http://hi.baidu.com/grayworm) 代理与事件是DotNet的两个重要概念,但好多朋友感觉没有这两个概念照样能够进行常规的DotNet开发.其实深入理解这两个概念对Do ...

  9. 使用jQuery中trigger()方法自动触发事件

    一.常用事件 在页面加载完成时  自动触发input的点击事件,在移动端可以实现自动弹出输入法,获得焦点 $("input").trigger("click") ...

最新文章

  1. interface IEngineControl封装引擎通用操作
  2. leetcode算法题--最多的不重叠子字符串★★
  3. linux memcached 的安装
  4. Android关联启动查询数据库,VIVO X9怎么查看关联启动记录 VIVO X9查看关联启动记录教程...
  5. 组合模式_设计模式结构性:组合模式(CompositePattern)
  6. 使用github上已有的开源项目
  7. C# 页面关联类似模式窗口
  8. jmeter web服务器协议,【JMeter4.0学习(三)】之SoapUI创建WebService接口模拟服务端以及JMeter测试SOAP协议性能测试脚本开发(示例代码)...
  9. python获取对象的大小_Python实现计算对象的内存大小示例
  10. Spring MVC文件上传示例教程 - 单个和多个文件
  11. 从趣味游戏到排序算法(2)
  12. 迫不及待,英特尔推特“官宣”GPU发布时间
  13. mysql报错22_运行 mysql 遇到的两个报错
  14. 仅需6道题轻松掌握Python时间和日期处理 | Python技能树征题
  15. 如何在ecshop订单中显示客户给商家的留言
  16. 如何在Mac视频中添加表情符号
  17. mysql 查询结果导出文件并导入文件到数据库
  18. 药品数据查询系统工具(非付费官网50个)
  19. 硬件工程师物料清单BOM对比工具
  20. 论文页眉设置奇数偶数页不同页眉,奇数页为各章题目,偶数页为论文题目

热门文章

  1. vue --- 使用vue-router获取带参数的路由
  2. 关于jQuery对象(类数组对象)以及DOM对象相互转化问题——[object Object]和[object HTMLInputElement]
  3. ZOJ4116 Game on a Graph
  4. Maven--资源文件resource的问题
  5. HTML学习笔记06-连接
  6. cisco 动态路由协议RIP笔记
  7. php 安装rabbitmq扩展无报错版
  8. [转] C# 路径(目录)
  9. 最优化作业第6章——无约束多维非线性规划方法
  10. html5 hr代码缩减比例,HTML HR size用法及代码示例