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方法 假设想监听文本框的内容,并且在每次输出结果的时候,都在文本框的内容拼接一段文字" ...
随机推荐
- 2022寒假集训day4
day4(day5补完的) 继续刷搜索方面的题, 初步了解了序列. T1 迷宫问题 题目描述设有一个 n*n 方格的迷宫,入口和出口分别在左上角和右上角.迷宫格子中分别放 0 和 1 ,0 表示可通, ...
- 2022寒假集训day3
day3:四道检测题,花了大半天时间. T1 子集和问题 问题描述 子集和问题的一个实例为<S,c>.其中S={x1,x2,-,xn}是一个正整数的集合,c是一个正整数.子集和问题判定是否 ...
- charles模拟弱网
Charles操作:延迟设置 >选择相应的网络延迟设置或者自定义延迟 >开启延迟即可,如图:
- SQL 在数据库中查找拥有此列名的所有表
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME='Column' #"Column"为要查询 ...
- MySQL基本数据类型与约束条件
昨日内容回顾 数据存储的演变 # 方向: 朝着更加统一和方便管理 数据库的发展史 # 由本地保存逐步演变为线上保存 数据库的本质 # 本质上就是一款CS架构的软件 """ ...
- shell脚本之判断当前内核主版本是否为3,且次版本是否大于10
[root@localhost ~]# cat uname.sh #!/bin/bash main=`uname -r | awk -F . '{print $1}'` minor=`uname -r ...
- InfluxDB 2.x Open Source Time Series Database
1. 说明 目前,大家普遍还在采用 InfluxDB 1.x 的版本,官方2.x的版本已经发布一段时间了, 其主推flux语言且自带前端炫酷图表. 2. 官方网站 https://www.influx ...
- Typora的使用教程.md
Typora的使用教程 原创:https://home.cnblogs.com/u/cn-zhouchao 2021.12.13 一.软件的介绍 Typora 是一款由 Abner Lee 开发的轻量 ...
- [镜像转换] ova文件转换成raw文件, 导入到openstack
ova转raw 使用工具: qemu-img.libguestfs-tools.libguestfs-winsupport # 从vmware导出ova文件, tar 解压导出来的ova文件 $ ta ...
- k8s核心资源之:标签(label)
简介 label是标签的意思,一对 key/value ,被关联到对象上,k8s中的资源对象大都可以打上标签,如Node.Pod.Service 等 一个资源可以绑定任意多个label,k8s 通过 ...