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

推荐订阅源

博客园 - 叶小钗
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
量子位
N
Netflix TechBlog - Medium
博客园 - 聂微东
博客园 - Franky
aimingoo的专栏
aimingoo的专栏
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog
Google DeepMind News
Google DeepMind News
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
C
Check Point Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
腾讯CDC

博客园 - 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引发事件