惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
小众软件
小众软件
博客园 - 叶小钗
宝玉的分享
宝玉的分享
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
SegmentFault 最新的问题
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
N
Netflix TechBlog - Medium
Google DeepMind News
Google DeepMind News
U
Unit 42
F
Fortinet All Blogs
IT之家
IT之家
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - huadust

msdn 网络编程 注册表操作 DateTime各种用法 [转]将dll汇入exe 用DataTable构建树 Lock Review String Review Class Review DataTable opertion Drag DataGridView Data To TreeView 2009_01_15_星期三 2009_01_02_星期五 2008_12_31_星期三 2008_12_24_星期三 2008_12_20_星期六 2008_12_17_星期三 2008_12_06_星期六 2008_12_04_星期四
委托用法
huadust · 2011-04-07 · via 博客园 - huadust

一、委托

callback 回调函数

声明委托:(与声明类相似)

public delegate string MyDelegate(string sInput);

使用委托:

1. 

MyDelegate myDelegateCase = new MyDelegate(InvokeMethod);

private string InvokeMethod(string sInput)

{

   return sInput);

}

2. 委托推断

MyDelegate myDelegateCase = InvokeMethod;

3. 匿名方法

MyDelegate myDelegateCase = delegate(string sInput){ return sInput; };

多播委托

MyDelegate myDelegateCase = InvokeMethod1;

myDelegateCase += InvokeMethod2;

委托总是带有1个参数的构造函数,这个参数就是委托引用的方法。

二、事件

EventHandler 1 总是返回void,2 参数必须是object、EventArg

声明委托和事件:

public delegate void ActionEventHandler(object sender, ActionCancelEventArgs ev);

public static event ActionEventHandler Action;

定义引发事件:

protected void OnAction(object sender, ActionCancelEventArgs ev)

{

    if (Action != null)

    {

        Action(sender, ev);

    }

}

Class.Action += new ActionEventHandler(MainForm_Action);

private void MainForm_Action(object sender, ActionCancelEventArgs e)

{

}

最后调用OnAction引发事件