zoukankan
html css js c++ java
C#笔记 使用自定义事件(含参)
Code
class
含参事件测试
{
//
6.现在来触发事件
static
void
Main(
string
[] args)
{
Dog dog
=
new
Dog();
Host host
=
new
Host(dog);
//
当前时间:从2009年11月1日23:59:50开始计时
DateTime now
=
new
DateTime(
2009
,
11
,
1
,
23
,
59
,
50
);
DateTime midnight
=
new
DateTime(
2009
,
11
,
2
,
0
,
0
,
0
);
//
等待午夜的到来
Console.WriteLine(
"
时间一秒一秒地流逝……
"
);
while
(now
<
midnight)
{
Console.WriteLine(
"
当前时间:
"
+
now);
Thread.Sleep(
1000
);
now
=
now.AddSeconds(
1
);
}
//
午夜零点小偷到达,小狗发出警报事件
Console.WriteLine(
"
\n月黑风高的午夜\n
"
);
Console.WriteLine(
"
小偷进入了房间……
"
);
AlarmEventArgs e
=
new
AlarmEventArgs(
3
);
dog.OnAlarm(e);
}
}
//
构造事件参数
public
class
AlarmEventArgs : EventArgs
{
public
int
numberOfThieves;
public
AlarmEventArgs(
int
numberValue)
{
this
.numberOfThieves
=
numberValue;
}
}
//
事件发送者
class
Dog
{
//
1.声明关于事件的委托
public
delegate
void
AlarmEventHandler(
object
sender,AlarmEventArgs e);
//
2.声明事件
public
event
AlarmEventHandler Alarm;
//
3.编写引发事件的函数
public
void
OnAlarm(AlarmEventArgs e)
{
if
(
this
.Alarm
!=
null
)
{
Console.WriteLine(
"
\n小狗:有小偷进来了,汪汪……\n
"
);
this
.Alarm(
this
,e);
}
}
}
//
事件接收者
class
Host
{
//
4.编写事件处理程序,参数中包含着numberOfThieves信息
//
如果只有一个小偷,则抓住小偷;如果多于一个,主人报警
void
HostHandleAlarm(
object
sender, AlarmEventArgs e)
{
if
(e.numberOfThieves
<=
1
)
{
Console.WriteLine(
"
主人:抓住小偷!
"
);
}
else
{
Console.WriteLine(
"
主人:我家来了{0}个小偷,快报警!
"
,e.numberOfThieves);
}
}
//
5.注册事件处理程序
public
Host(Dog dog)
{
dog.Alarm
+=
new
Dog.AlarmEventHandler(HostHandleAlarm);
}
}
查看全文
相关阅读:
Oracle11g 修改内存配置
七.从按键输入到GPIO通用驱动
三.C语言版本的LED驱动试验
五.NXP恩智浦官方SDK使用
前期准备——1.Makefile的使用及基本语法
八.主频及时钟配置
四.指针形式对寄存器进行操作(类似STM32效果)
二.I.MX6U的启动方式
六.蜂鸣器驱动
六.项目的BSP工程管理
原文地址:https://www.cnblogs.com/gb2013/p/1594170.html
最新文章
Win10 环境下安装TesseractOCR与Python集成识别
[bug] hive:FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
[bug] sparkshell 报错: javax.jdo.JDOFatalInternalException: Error creating transactional connection factory
[bugs] spark 报错:java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found.
[bug] TypeError: namedtuple() missing 3 required keywordonly arguments: 'verbose', 'rename', and 'module'
centos下安装anaconda 以及搭建python3虚拟环境
[bug] 每次都要执行source ~/.bash_profile
[bug] Hive:Number of reduce tasks is set to 0 since there‘s no reduce operator
[Python] Anoconda
[bugs] IDEA 2019 mysql 连接不显示表
热门文章
看似简单的input框输入竟然异常卡顿,记一个日常性能问题的排查思路
react中的setState是同步还是异步?react为什么要将其设计成异步?
react 八千字长文深入了解react合成事件底层原理,原生事件中阻止冒泡是否会阻塞合成事件?
npm修改源地址,使用nrm管理源仓库地址
react 新旧生命周期有什么区别?新增了哪些钩子?废弃了哪些钩子?为什么废弃?
react router component与render有什么区别?提升渲染性能,记一个react router component 误用导致请求死循环的有趣bug
react 聊聊setState异步背后的原理,react如何感知setState下的同步与异步?
提升正则读写效率,超好用的正则图解工具Regulex与在线调试工具regexr
Centos6 安装 oracle11g
rman 表空间物理文件丢失的恢复
Copyright © 2011-2022 走看看