Net中事件的高级用法之三
1.事件的高级应用
使用事件可以解除代码耦合
2.事件高级应用实例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public delegate void MiaoEventDelegate();
public class Cat
{
public event MiaoEventDelegate MiaoEventHandler;
public void Miao()
{
Console.WriteLine("猫,苗一声");
Mouse.Run();
Dog.Wang();
Neighbor.Awake();
Stealer.Hide();
Baby.Dry();
}
public void MiaoEvent(){
Console.WriteLine("**************MiaoEvent*****************");
Console.WriteLine("另外一只猫,喵一声");
if (MiaoEventHandler !=null)
{
MiaoEventHandler();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public class Baby
{
public static void Dry()
{
Console.WriteLine("小孩子哭");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public class Dog
{
public static void Wang()
{
Console.WriteLine("狗叫");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public class Mouse
{
public static void Run()
{
Console.WriteLine("老鼠跑");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public class Neighbor
{
public static void Awake()
{
Console.WriteLine("邻居被吵醒");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
public class Stealer
{
public static void Hide(){
Console.WriteLine("小偷藏起来");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyEvent
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("欢迎来的流星小子博客学习");
Cat cat = new Cat();
// cat.Miao();
cat.MiaoEventHandler += Mouse.Run;
cat.MiaoEventHandler += Dog.Wang;
cat.MiaoEventHandler += Neighbor.Awake;
cat.MiaoEventHandler += Stealer.Hide;
cat.MiaoEventHandler += Baby.Dry;
cat.MiaoEvent(); Console.Read();
}
}
}
Net中事件的高级用法之三的更多相关文章
- 详解Vue中watch的高级用法
我们通过实例代码给大家分享了Vue中watch的高级用法,对此知识点有需要的朋友可以跟着学习下. 假设有如下代码: <div> <p>FullName: {{fullName} ...
- linux中find命令高级用法
前言 在<Linux中的文件查找技巧>一文中,我们已经知道了文件查找的基本方法,今天我们介绍find命令的一些高级使用技巧.它能满足我们一些更加复杂的需求. 查找空文件或空目录 有时候需要 ...
- RAC中常见的高级用法-组合
组合: concat组合: 按一定顺序执行皇上与皇太子关系 concat底层实现: 1.当拼接信号被订阅,就会调用拼接信号的didSubscribe 2.didSu ...
- 【转】Vue.js中 watch 的高级用法
假设有如下代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type=&q ...
- Vue.js中 watch 的高级用法
假设有如下代码: <div> <p>FullName: {{fullName}}</p> <p>FirstName: <input type=&q ...
- SQL语句中的select高级用法
#转载请联系 为了更好的了解下面的知识点,我们先创建两张表并插入数据. # 学生表 +----+-----------+------+--------+--------+--------+------ ...
- Flutter 中渐变的高级用法
Flutter 中渐变有三种: LinearGradient:线性渐变 RadialGradient:放射状渐变 SweepGradient:扇形渐变 看下原图,下面的渐变都是在此图基础上完成. Li ...
- ios中webview的高级用法(二)
框架: webview与js的通信框架 #import "MJViewController.h" #import "MBProgressHUD+Add.h" ...
- RAC中常见的高级用法-bind方法
RAC操作思想: Hook(钩子)思想 RAC核心方法:bind bind方法 假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字" ...
随机推荐
- JS 获取JSON返回的时间值转换为通常格式展示
var date = new Date(parseInt(数据源.slice(6))); //获取到时间 年月日时分秒 var result = date.getFullYear() + '/' ...
- Spring Cloud Alibaba Nacos路由策略之保护阈值!
在 Nacos 的路由策略中有 3 个比较重要的内容:权重.保护阈值和就近访问.因为这 3 个内容都是彼此独立的,所以今天我们就单独拎出"保护阈值"来详细聊聊. 保护阈值 保护阈值 ...
- python篇第8天【运算符】
第7天休息 什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以 ...
- [TJOI2013] 奖学金
代码: #include<bits/stdc++.h> using namespace std; long long n,c,ff,ans; long long suma[200010], ...
- Lesson17——NumPy 统计函数
NumPy 教程目录 1 NumPy 统计函数 NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等. 函数说明如下 1.1 统计 method descripti ...
- Linux实现MySQL数据库凌晨自动备份
Linux实现MySQL数据库凌晨自动备份 备份多数据库,每天凌晨两点执行,使用当前年月日作为文件夹,不存在该文件夹就创建,删除七天前备份过的文件. 定时调度使用crontab 1 login_use ...
- Solution -「ZJOI 2019」「洛谷 P5326」开关
\(\mathcal{Description}\) Link. 有 \(n\) 个开关,初始时所有开关的状态为 \(0\).给定开关的目标状态 \(s_1,s_2,\cdots,s_n\).每 ...
- 我们一起来学Shell - 正则表达式
文章目录 什么是正则表达式 正则表达式元字符 正则表达式应用举例 POSIX 方括号表达式 POSIX 字符集列表: 我们一起来学Shell - 初识shell 我们一起来学Shell - shell ...
- 从.net开发做到云原生运维(零)——序
1. 为什么要写这个系列的文章 大家看到标题的时候肯定会感觉到困惑,这个标题里的两件事物好像并不是很搭.说到.net开发大家一般都会想到asp.net做网站,或者是wpf和winform这类桌面开发, ...
- 一个含有多个flag的图片(Misc)
图片是来自一个老阿姨,然后这个图片是属于一个杂项题目,一个图片中包含十几个flag,格式为#....#,第一个flag就是图片一开始就放在上面的,可以直接看到. 然后文件名字也是一个flag, 将图片 ...