深入理解Delegate与Event
来源:互联网 发布:简明python教程在哪买 编辑:程序博客网 时间:2024/04/30 19:22
1. 如下例子说明Delegate关键字的意义(相当于声明一个具有函数指针功能的类)
class Program
{
//delegate声明
public delegate void MyDelegate(string input);
/// <summary>函数1</summary>
/// <param name="input"></param>
public static void Hello1(string input)
{
Console.WriteLine("invoked1:" + input);
}
/// <summary>函数2</summary>
/// <param name="input"></param>
public static void Hello2(string input)
{
Console.WriteLine("invoked2:" + input);
}
static void Main(string[] args)
{
MyDelegate d1 = new MyDelegate(Hello1);
MyDelegate d2 = new MyDelegate(Hello2);
//可以组合delegate对象
MyDelegate d3 = d1 + d2;
d3("trigger");
}
}
结果:invoked1:trigger
invoked2:trigger
2. Event的本质相当于一个修饰符
2.1 Event修饰的字段可以声明在接口里面
public delegate void MyDelegate(string input);
interface eventTest {
event MyDelegate myEvent;
}
2.2 Event的触发只能从定义它的类当中触发(通过查看IL)
public static MyDelegate myDelegate;
public static event MyDelegate myEvent;
.field public static class ConsoleApplication2.Program/MyDelegate myDelegate
.field private static class ConsoleApplication2.Program/MyDelegate myEvent
说明:IL代码显示myEvent被声明为私有类,所以只能从定义它的类中触发event
- 深入理解Delegate与Event
- Delegate 与 Event
- 事件(event)与委托(delegate)
- event与delegate的区别
- event与delegate的区别
- delegate与event的区别
- C# -- delegate 与 event 解析
- 从callback的角度来理解.NET/C# 中的 委托 (delegate)与 事件 (event)
- 从callback的角度来理解.NET/C# 中的 委托 (delegate)与 事件 (event)
- 深入理解nodejs Event loop
- 关于Event与delegate的一些对比
- C#中的delegate 与event(一)
- C#委托(delegate与事件(Event)
- Delegate 与 Event 的一些问题
- 关于Event与delegate的一些对比 .
- C#委托delegate与事件event
- C#event 与 delegate的区别
- C#中的delegate与event简单讲解
- NDK的扩展
- IP地址表示方法及网段子网掩码
- SQL Server2005的XML数据类型之基础篇1
- WSAAsyncSelect模型Delphi简单实现
- SQL Server2005的XML数据类型之基础篇2
- 深入理解Delegate与Event
- Hibernate单表操作
- xml处理的一个常用类
- BBextra 1.05 sc的两个已存在并可修复的BUG
- 3.26-如何改变一个视图的背景颜色?
- SOCKET 常用数据类型分析
- Nehe opengl编程一(Qt4修改版)
- qt嵌入vs2008中静态编译的程序发布后乱码
- DDK 的 SOURCES 不能包含 .h 头文件