zoukankan
html css js c++ java
C#中的委托和事件 [ZT]
using
System;
using
System.Collections.Generic;
using
System.Text;
namespace
TestConsole
{
//
定义一个委托,用来表示老鼠监听着猫的动静
public
delegate
void
CatListeningHandler();
public
class
Cat
{
//
定义一个事件,这个事件表示猫叫了
public
event
CatListeningHandler CatCry;
public
void
Cry()
{
Console.WriteLine(
"
Meow~~
"
);
OnCry();
}
protected
virtual
void
OnCry()
{
if
(CatCry
!=
null
)
{
CatCry();
}
}
}
public
class
Mouse
{
public
void
Run()
{
Console.WriteLine(
"
Mouse run away
"
);
}
}
class
Program
{
static
void
Main(
string
[] args)
{
Cat cat
=
new
Cat();
Mouse mouse
=
new
Mouse();
//
把猫叫和老鼠逃跑联系起来
cat.CatCry
+=
new
CatListeningHandler(mouse.Run);
cat.Cry();
}
}
}
小结:cat.CatCry
+=
new
CatListeningHandler(mouse.Run)中
CatListenningHandler
是一个委托,它接收一个无参无返回值的方法名作为参数,CatCry是该委托的事件实例用+=操作符把委托挂接到事件,简单的说就是当触发CatCry事件的时候,方面mouse.Run()就会执行。事件实例CatCry可以用+=链接多个委托实例,而后触发事件时多个链接的委托方法会按序执行。如委托链中有不需要的委托,可用-=操作符移除。
查看全文
相关阅读:
动态、指针field-symbols初探
简单的OO ALV显示ALV及下载
python运算符号
linux ubuntu 学习总结(day01)基本命令学习
Linux之Ubuntu基本命令提炼,分条列出
linux常用基本命令
EMC光纤交换机故障处理和命令分析
Java求一个数组中的最大值和最小值
【SSH网上商城项目实战30】项目总结
【SSH网上商城项目实战29】使用JsChart技术在后台显示商品销售报表
原文地址:https://www.cnblogs.com/RobotTech/p/1055719.html
最新文章
MS09-020 iis6.0提权
MS09-012 PR提权
MS12-042 用户态调度机制特权提升漏洞
顺F速运,你被爱加M坑了
Chrome保存的HAR文件怎么打开?
爬虫技术基础
MD5哈希算法及其原理
Fiddler使用技巧:强大的数据文本编解码功能
使用Fiddler抓取手机HTTP流量包
裸奔的支付X聊天,你还敢用吗?
热门文章
使用Fiddler进行HTTP流量分析
RTP协议分析
SIP协议分析
SAP国际版本启用及其他多语言版本的设置解析
ABAP 新特性
abap select 拼接字段
abap中的casting及?=
REUSE_ALV_FIELDCATALOG_MERGE 的自动获取ALV fieldcat
abap-面向对象event事件类的初始用
历史库存查询(6月滚动)(动态列表的使用)(含日期F4的选择帮助)
Copyright © 2011-2022 走看看