第3章 C#中的委托和事件
.NET框架中的委托和事件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
using System.Text.RegularExpressions; namespace _.net之美
{
class Program
{
static void Main(string[] args)
{
Heater heater = new Heater();
Alert alert = new Alert();
heater.boiled += alert.AlertTemperature;
heater.boiled += Display.ShowMsg;
heater.BoilWater();
Console.ReadKey();
}
} public class Heater
{
private readonly string area="ChengDu";
public string Area { get { return area; } } private readonly string type = "";
public string Type { get { return type; } } private int temperature; public delegate void BoiledEventHandle(object sender, BoiledEventArgs args);
public event BoiledEventHandle boiled; public void BoilWater()
{
for (int i = ; i <= ; i++)
{
temperature = i;
BoiledEventArgs e = new BoiledEventArgs(temperature);
if (temperature > )
{
OnBoiled(e);
}
}
} private void OnBoiled(BoiledEventArgs e)
{
if (boiled != null)
boiled(this, e);
} public class BoiledEventArgs
{
private readonly int temperature;
public BoiledEventArgs(int temperature)
{
this.temperature = temperature;
} public int Temperature { get { return this.temperature; } }
}
} public class Alert
{
public void AlertTemperature(object sender, Heater.BoiledEventArgs e)
{
Heater heater = (Heater)sender;
Console.WriteLine("Area:{0},Type:{1}", heater.Area, heater.Type);
Console.WriteLine("水快烧开了!");
}
} public class Display
{
public static void ShowMsg(object sender, Heater.BoiledEventArgs e)
{
Heater heater = (Heater)sender;
Console.WriteLine("Area:{0},Type:{1}", heater.Area, heater.Type);
Console.WriteLine("当前温度:{0}", e.Temperature);
}
}
}
委托进阶
第3章 C#中的委托和事件的更多相关文章
- 【转载】C# 中的委托和事件(详解:简单易懂的讲解)
本文转载自http://www.cnblogs.com/SkySoot/archive/2012/04/05/2433639.html C# 中的委托和事件(详解) C# 中的委托和事件 委托和事件在 ...
- C# 中的委托和事件(详解)
C# 中的委托和事件 委托和事件在 .NET Framework 中的应用非常广泛,然而,较好地理解委托和事件对很多接触 C# 时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太 ...
- 【转载】C# 中的委托和事件(详解)
<div class="postbody"> <div id="cnblogs_post_body" class="blogpost ...
- C# 中的委托和事件
觉得这篇文章写的非常好,大神之作,由简入繁,对我这种初学者来说帮忙很大,特此留存下. 摘自:http://tracefact.net/CSharp-Programming/Delegates-and- ...
- C# 中的委托和事件(转)
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...
- C# 中的委托和事件(转载)
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去 ...
- 【转】C# 中的委托和事件
阅读目录 C# 中的委托和事件 引言 将方法作为方法的参数 将方法绑定到委托 事件的由来 事件和委托的编译代码 委托.事件与Observer设计模式 .Net Framework中的委托与事件 总结 ...
- 分分钟用上C#中的委托和事件之窗体篇
上次以鸿门宴的例子写了一篇名为<分分钟用上C#中的委托和事件>的博文,旨在帮助C#初学者迈过委托和事件这道坎,能够用最快的速度掌握如何使用它们.如果觉得意犹未尽,或者仍然不知如何在实际应用 ...
- 《C#高级编程》学习笔记------C#中的委托和事件(续)
本文转载自张子阳 目录 为什么要使用事件而不是委托变量? 为什么委托定义的返回值通常都为void? 如何让事件只允许一个客户订阅?(事件访问器) 获得多个返回值与异常处理 委托中订阅者方法超时的处理 ...
随机推荐
- Android Hotpatch系列之-给release包打Patch
在默认debug包里面,是不对class做混淆的,所以Patch编写相对简单,但是应用在发布的时候都是release包,会对代码做混淆,此时class name ,field name,method ...
- Android学习五:Content Provider 使用
1ContentProvider相关知识1.1在安卓应用中,通过文件方式对外共享数据,需要进行文件操作读写数据:采用sharedpreferences共享数据,需要使用sharedpreference ...
- [Eclipse] - Unicode properties editor
在properpties文件中使用中文,需要将文件转成unicode. eclipse安装插件:PropertiesEditor 下载地址: http://propedit.sourceforge.j ...
- C#:安装Windows服务,动态指定服务名及描述
Installer.cs>> public Installer() { InitializeComponent(); /* 服务未注册前,System.Configuration.Conf ...
- 【java】之读取InputStream流
如这个文件 @Test public void test01() throws Exception{ InputStream in=new FileInputStream("c://test ...
- DBMS_JOBS
http://blog.itpub.net/23055736/viewspace-1115938/
- C语言操作mysql
php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性,推荐用 mysqlnd mysq ...
- shell基础
1.显示当前登录linux系统的用户 2.当用户登录到linux系统后,一旦出现提示符时,便可以输入操作命令了.命令可以分为如下两类: (1).bash内置的命令: (2).应用程序. 怎么知道哪些指 ...
- 【caffe-windows】 caffe-master 之 matlab接口配置
平台环境: win10 64位 caffe-master vs2013 Matlab2016a 第一步: 打开\caffe-master\windows下的CommonSettings.props文 ...
- IQ推理:P先生和Q先生
P先生.Q先生具有足够的推理能力.这天,他们正在接受面试. 他们知道桌子的抽屉里有16张扑克牌:红桃 A Q 4黑桃 J 8 4 2 7 3草花 K Q 5 4 6方块 A 5约瀚教授从这16张牌中挑 ...