- 浏览: 435614 次
- 性别:
- 来自: 唐山
文章分类
最新评论
-
hautbbs:
谢谢分享!
ASP.NET 导出Excel 和csv -
hautbbs:
感谢分享!
ASP.NET 导出Excel乱码的终极解决 -
wyf:
zcl920 写道只能说 看不懂。要发就发全 取一段出来 有什 ...
图片上绘制文字换行处理 -
zcl920:
只能说 看不懂。要发就发全 取一段出来 有什么用。
图片上绘制文字换行处理 -
380086154:
有用,谢谢。
js比较日期
using System; using System.Collections.Generic; using System.Text; namespace Delegate { // 热水器 public class Heater { private int temperature; public string type = “RealFire 001″; // 添加型号作为演示 public string area = “China Xian”; // 添加产地作为演示 //声明委托 public delegate void BoiledEventHandler(Object sender, BoliedEventArgs e); public event BoiledEventHandler Boiled; //声明事件 // 定义BoliedEventArgs类,传递给Observer所感兴趣的信息 public class BoliedEventArgs : EventArgs { public readonly int temperature; public BoliedEventArgs(int temperature) { this.temperature = temperature; } } // 可以供继承自 Heater 的类重写,以便继承类拒绝其他对象对它的监视 protected virtual void OnBolied(BoliedEventArgs e) { if (Boiled != null) { // 如果有对象注册 Boiled(this, e); // 调用所有注册对象的方法 } } // 烧水。 public void BoilWater() { for (int i = 0; i <= 100; i++) { temperature = i; if (temperature > 95) { //建立BoliedEventArgs 对象。 BoliedEventArgs e = new BoliedEventArgs(temperature); . OnBolied(e); // 调用 OnBolied方法 } } } } // 警报器 public class Alarm { public void MakeAlert(Object sender, Heater.BoliedEventArgs e) { Heater heater = (Heater)sender; //这里是不是很熟悉呢? //访问 sender 中的公共字段 Console.WriteLine(”Alarm:{0} - {1}: “, heater.area, heater.type); Console.WriteLine(”Alarm: 嘀嘀嘀,水已经 {0} 度了:”, e.temperature); Console.WriteLine(); } } // 显示器 public class Display { public static void ShowMsg(Object sender, Heater.BoliedEventArgs e) { //静态方法 Heater heater = (Heater)sender; Console.WriteLine(”Display:{0} - {1}: “, heater.area, heater.type); Console.WriteLine(”Display:水快烧开了,当前温度:{0}度。”, e.temperature); Console.WriteLine(); } } class Program { static void Main() { Heater heater = new Heater(); Alarm alarm = new Alarm(); heater.Boiled += alarm.MakeAlert; //注册方法 heater.Boiled += (new Alarm()).MakeAlert; //给匿名对象注册方法 heater.Boiled += new Heater.BoiledEventHandler(alarm.MakeAlert); //也可以这么注册 heater.Boiled += Display.ShowMsg; //注册静态方法 heater.BoilWater(); //烧水,会自动调用注册过对象的方法 } } } Www_ 输出为: 以下为引用的内容: Alarm:China Xian - RealFire 001: Alarm: 嘀嘀嘀,水已经 96 度了: Alarm:China Xian - RealFire 001: Alarm: 嘀嘀嘀,水已经 96 度了: Alarm:China Xian - RealFire 001: Alarm: 嘀嘀嘀,水已经 96 度了: Display:China Xian - RealFire 001: Display:水快烧开了,当前温度:96度。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fdsa123456/archive/2009/02/11/3877678.aspx
发表评论
-
登录时记住用户名密码的实现方式
2019-06-12 15:11 3032登录的时候记住用户 ... -
CAS 实现单点登录 .NET MVC
2016-05-24 17:14 1130http://www.cnblogs.com/woxpp/p ... -
.NET开发邮件发送功能的全面教程(含邮件组件源码)
2015-03-31 09:43 1169原文地址:http://www.cnblogs.com/he ... -
开发Web组合
2015-01-04 11:39 6131、数据库操作 ORM-Dapper 2、前台界面布局采 ... -
基于 Bootstrap 构建的网站
2014-12-14 14:12 636文档,下载地址:http://v3.bootcss.com ... -
iis8 默认不支持svc解决方法
2014-09-18 18:57 781以下内容对于使用WIN2012 部署V9的时候使用。 ... -
C# 连接Oracle(利用ODP.net,不安装oracle客户端)
2014-07-11 09:37 1696C# 连接Oracle(利用ODP.net,不安装oracl ... -
C# Attribute 特性,过期特性
2014-05-27 15:18 1843通过下列过程将属性应用到代码元素。 通过从 .NE ... -
.NET画实时直方图
2011-12-30 09:37 918using System; using System.Col ... -
设置combobx选中项
2011-12-21 15:20 1032cbRole.SelectedIndex = cbRole.I ... -
文档树状结构化目录管理方法
2011-12-20 09:50 2189本文适用于附件(各类文档、图片和压缩包等,下同)比较多的 ... -
.StringTemplate替换模板
2011-11-03 10:19 1246官方下载 www.StringTemplate. ... -
WCF-IErrorHandler
2011-10-11 16:30 1053使用 IErrorHandler 接口,我们可以更深入地 ... -
ADODB.Stream instead of Scripting.FileSystemObject.
2011-07-04 08:55 1241In a Silverlight 4 OOB App (eve ... -
Scripting.FileSystemObject对象的详细技巧指南
2011-07-03 23:39 1047Scripting.FileSystemObject对象的 ... -
Stream 和 byte[] 之间的转换
2011-07-02 16:52 1071/* - - - - - - - - - - - - - ... -
常用正则表达式
2011-06-15 20:17 794正则表达式用于字符 ... -
DynamicMethod 类
2011-05-11 22:51 1164public delegate String MyMetho ... -
一个通用的快速反射方法(A General Fast Method Invoker)
2011-04-13 22:01 1526普通反射方法 MethodInfo methodIn ... -
C#操作IIS(转)可以写一个工具自己配置网站
2011-03-24 21:08 2269using System; using System.Dir ...
相关推荐
**C#面向对象设计模式纵横谈(19)**:**观察者模式**(Observer Pattern)是行为型模式的一种,它在软件工程中扮演着至关重要的角色。观察者模式是一种设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态...
现在,让我们逐步构建这个简单的C#观察者模式实例: 1. **定义委托** 首先,我们需要定义一个委托类型,表示观察者应该执行的操作。例如: ```csharp public delegate void StateChangedEventHandler(object ...
观察者模式是软件设计模式中的一种行为模式,它在面向对象编程中扮演着重要的角色,尤其是在C#这样的语言中。观察者模式的核心思想是定义一个一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象...
在C#中,我们可以利用.NET框架提供的事件和委托机制来实现观察者模式。本文将深入探讨如何使用C#来实现这一模式。 首先,我们需要理解观察者模式的基本组件:主题(Subject)和观察者(Observer)。主题是被观察的...
在C#编程中,观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。这个模式广泛应用于事件驱动编程,例如GUI系统、多线程通信等...
在Java、C#等面向对象编程语言中,观察者模式被广泛应用于用户界面、事件处理、游戏编程等领域。 在观察者模式中,通常有两个主要角色:主题(Subject)和观察者(Observer)。主题是被观察的对象,它持有一个观察...
### 观察者模式及其在C#中的应用 #### 观察者模式的目的与概述 观察者模式(Observer Pattern)是一种行为设计模式,其主要目的是解决面向对象设计中常见的问题——如何实现对象间的解耦,使得一个对象的状态改变...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在C#中,我们可以利用.NET框架提供的...
同时,还可以探索其他编程语言中对观察者模式的支持,如C#的System.ComponentModel.INotifyPropertyChanged接口,或者是JavaScript的事件监听机制。 在开发工具中,Observer模式也有广泛应用。例如,IDE(集成开发...
在Java、C#等面向对象语言中,观察者模式是标准库的一部分,通常通过事件或委托来实现。 观察者模式的核心组件包括主题(Subject)和观察者(Observer)。主题是被观察的对象,它可以是任何具有可变状态的对象;...
这种方式更符合C#的编程风格,通过事件订阅和触发,同样可以达到观察者模式的效果,但代码结构有所不同,不再直接继承自`Observer`,而是定义事件处理方法(如`CloseStockMarket`或`CloseNBA`)。 使用观察者模式有...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于事件驱动编程,使得多...
C#面向对象设计模式 (行为型模式) Observer 观察者模式 视频讲座下载
观察者模式(Observer Pattern)是一种行为设计模式,它允许你定义一个订阅机制,可以在对象状态改变时通知多个“观察”该对象的其他对象。在C#中,这种模式经常用于事件处理,使得对象之间可以松散耦合地交互。下面...
观察者模式(Observer Pattern)是设计模式中的一种行为模式,它允许对象在状态改变时通知其他依赖该对象的对象。在C#中,观察者模式主要通过事件(Event)和委托(Delegate)机制来实现,这使得对象之间的耦合度...
观察者模式(Observer Pattern)是软件设计模式中的一种行为模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式常用于实现事件驱动编程或者...
在Observer模式中,主要有两个关键角色:Subject(主题)和Observer(观察者)。Subject维护了一个Observer的列表,并负责在状态变化时通知它们。Observer则关注Subject,当Subject状态变化时,Observer会收到通知并...
在这个“C#的观察者模式实例”中,我们将探讨如何在C#中实现这一模式,并通过天气预报的功能进行说明。 观察者模式的核心思想是定义一个一对多的依赖关系,当一个对象(主题)的状态发生改变时,所有依赖于它的对象...
除了Java标准库中的实现,许多其他编程语言和框架也提供了内置的观察者支持,如JavaScript的EventEmitter、C#的Event和委托、或者在Spring框架中的ApplicationEvent和ApplicationListener。 在实际项目中,观察者...