委托和事件C#演示代码
class Cat
{
private string _name;
public Cat(string name)
{
_name = name;
} public void Shout()
{
Console.WriteLine("瞄,我是"+_name+",我来了!");
CatShout(); //第三步,触发点,事件要加括号
} public delegate void CatShoutEventHandler(); //第一步,声明委托,要加圆括号 public event CatShoutEventHandler CatShout; //第二步,声明事件,类型为以上委托类型
} class Mouse
{
public string _name;
public Mouse(string name)
{
_name = name;
} public void Run()
{
Console.WriteLine("猫来了,我是"+_name+",快跑!");
}
} static void Main(string[] args)
{
Cat cat=new Cat("Tom");
Mouse jerry=new Mouse("Jerry");
Mouse jack=new Mouse("Jack"); cat.CatShout += new Cat.CatShoutEventHandler(jerry.Run); //第四步,将相关方法的委托登记到事件
cat.CatShout += new Cat.CatShoutEventHandler(jack.Run); cat.Shout();
Console.ReadLine();
}
1、委托是对函数的封装,一旦为委托分配了方法,委托将具有与该方法完全相同的行为。
2、关于事件和委托的关系,可以看作容器和元素的关系,事件是委托的容器,容器(事件)里可以装(登记)许多元素(委托)。当执行事件时,会逐个执行在该事件中登记的委托。
使用委托和事件的步骤:
1、声明委托
2、声明事件,事件类型为以上委托的类型
3、确定触发点
4、将引用方法的委托注册到事件
具体代码可参考最上。
委托和事件C#演示代码的更多相关文章
- js实例分析JavaScript中的事件委托和事件绑定
我们在学习JavaScript中,难免都会去网上查一些资料.也许偶尔就会遇到“事件委托”(也有的称我“事件代理”,这里不评论谁是谁非.以下全部称为“事件委托”),尤其是在查JavaScript的事件处 ...
- C#通过“委托和事件”的方式实现进程监控并与“普通方式”对比
今天重新学习了一下观察者模式,对我的思路产生了启发.进程监控程序之前写过几个,这回换一种思路,改用委托和事件来实现.我已经用序号将关键的几步标注,方便大家理顺思路.代码如下: using System ...
- 委托与事件代码详解与(Object sender,EventArgs e)详解
委托与事件代码详解 using System;using System.Collections.Generic;using System.Text; namespace @Delegate //自定义 ...
- 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码
详解C#泛型(二) 一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...
- 编写高质量代码改善C#程序的157个建议——建议137:委托和事件类型应添加上级后缀
建议137:委托和事件类型应添加上级后缀 委托类型本身是一个类,考虑让派生类的名字以基类名字作为后缀.事件类型是一类特殊的委托,所以事件类型也遵循本建议. 委托和事件的正确的命名方式有: public ...
- .NET面试题系列[7] - 委托与事件
委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...
- .NET基础拾遗(4)委托、事件、反射与特性
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易.它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见 ...
- c#委托、事件、Observer
委托和事件在.NET Framework[1] 中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易. 中文名 委托 外文名 Delegate 编程语言 C# 作 ...
随机推荐
- Leetcode-Recover BST
Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...
- Cocos2d-x学习笔记:CCSprite的使用总结
一.精灵创建及初始化 备注:默认锚点ccp(0.5,0.5),默认位置 ccp(0,0),contentSize为精灵图片尺寸 1.从图片文件创建 2.从帧缓存创建: 3.初始化及自定义大小 4. 从 ...
- [Navicat] 常用快捷键及注意事项
近来需要同时管理多种类型.多台server的数据库,在经历了各种查询客户端(SSMS, SQLyog, PL/SQL等)的不断切换,ip/user/pwd的反复输入的这种自虐式体验后,实在无法忍受,就 ...
- Storm-源码分析-acker (backtype.storm.daemon.acker)
backtype.storm.daemon.acker 设计的巧妙在于, 不用分别记录和track, stream过程中所有的tuple, 而只需要track root tuple, 而所有中间过程都 ...
- Python获取指定目录下所有子目录、所有文件名
需求 给出制定目录,通过Python获取指定目录下的所有子目录,所有(子目录下)文件名: 实现 import os def file_name(file_dir): for root, dirs, f ...
- 五分钟学会 Kotlin 语法
为什么使用Kotlin 项目一期在收尾了终于有时间折腾了,一个多月以来Kotlin从入门到现在,坚持用来开发的切身感受.因为语法与Java的区别挺大的一开始很想放弃,如果不是因为项目在使用,想必很少人 ...
- python中decorator的用法及原理(一)
0. 概念 什么叫装饰器,其实也可以叫做包装器.即对于一个既有的函数func(args),在调用它之前和之后,我们希望都做一些事情,把这个函数包装起来. Python中的装饰器分为两类:函数装饰器和类 ...
- use html5 video tag with MSE for h264 live streaming
本编博客记录桌面虚拟化移动端预研. 完整demo: https://github.com/MarkRepo/wfs.js 常见的直播方案有RTMP RTSP HLS 等等, 由于这些流都需要先传输到服 ...
- html当前文档的状态
<script type="text/javascript"> document.onreadystatechange = loadingChange;//当页面加载状 ...
- PHP基础学习代码案例
<?php print 'hello world ! '; echo '<br/>'; ?> <?php $number="16"; $number2 ...