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可以用+=链接多个委托实例,而后触发事件时多个链接的委托方法会按序执行。如委托链中有不需要的委托,可用-=操作符移除。
查看全文
相关阅读:
20140630 科技脉搏-互联网精神之“我不是为了输赢,我就是认真”
iOS 获取本地视频的缩略图
iOS App与iTunes文件传输的方法和对iOS App文件结构的说明
罗振宇自媒体品牌“罗辑思维”估值1亿背后:媒体通往社群之路
20140622 科技脉搏 -互联网思维之“一群人团结起来占其他人便宜”
20140616 科技脉搏 -最大颠覆来自创业公司与边缘产业
关于流媒体(m3u8)的下载与播放
20140608 科技脉搏 -下半身需求是人类共同需求,有多少人就有多大市场
IOS遍历未知对象属性、函数
iOS中使用 Reachability 检测网络
原文地址:https://www.cnblogs.com/RobotTech/p/1055719.html
最新文章
WordPress主题开发:WP_Query使用分页实例
WordPress主题开发:WP_Query基本用法
让Less在Dreamweaver中高亮显示
Netbeans 安装emmet插件
解决sublime text 3中文乱码问题
IOS 多线程与异步的区别
ASIHTTPRequest系列(一):同步和异步请求
APP被苹果APPStore拒绝的各种原因
UICollectionView 相关
防止在iOS设备中的Safari将数字识别为电话号码
热门文章
IOS中获取各种文件的目录路径的方法
ios UIWebView截获html并修改便签内容
libxml2.dylb 罗致<libxml/tree.h> 老是找不到头文件
IOS-plist文件DES加密
UIWebView 大全
Could not find a storyboard named 'Main' in bundle NSBundle
添加类似navigationController自带的返回按钮
IOS开发中的CGFloat、CGPoint、CGSize和CGRect
xCode5.0使用iOS6.1SDK及模拟器
NSPredicate的用法
Copyright © 2011-2022 走看看