event与delegate 区别
无意在网上看到有人在讨论这两个的区别,以前一直都没注意过,粗一问还真的不知道到底有啥区别?
于是GOOLGE了一下,发现网上讨论这两上的还真不少。甚至有人拿他去做了面试题。我在想如果我面试的时候考官问这道题,我到还真答不上来。不过这并不妨碍俺用他,这个考官是不是有点太钻针角了(题外话)
看了这么久,粗略的来说。其时Event和Delegate其时没区别。因为Event其时就象是Deletgate的扩展。有人通俗的说,Event和Delegate 的区别有于字段和字属性区别。
比如:你定义了一个字段private int field 然后你在给他做get,set这样让他成为一个属性。。而用他们为event和Delegate做个不是很合适的类比。Delegate就相当于那个field。而Event就相当于他的属性。其时Evnet就是一个受限的Delegate。。
明天仔细阅读了Jeffrey Richter的书了在仔细研究下
分享到:
相关推荐
.NET Delegate Event Model与COM Connection Points是两种不同的事件处理机制,它们在编程中有着重要的作用,尤其是在构建组件和对象之间的交互时。本文将深入探讨这两种模型的差异、应用场景以及如何在.NET环境中...
我自己写的一个博文配的例子,博文地址待审核后加上去。
【Delegate.Event.ThreadDelegate.Event.Thread】这个标题看起来像是一个编程相关的概念,主要涉及到的是委托(Delegate)、事件(Event)以及线程(Thread)。在.NET框架中,委托是引用方法的类型,可以用来传递...
首先,我们要理解什么是委托(Delegate)。委托在C#中是一种类型,它代表了一个或多个方法的引用。这就好比是一个函数的指针,允许我们在程序中传递方法作为参数,或者存储方法以便稍后调用。委托类型是通过定义一个...
在编程领域,事件委托(Event Delegate)是一种设计模式,它允许我们把事件处理代码与触发事件的对象解耦。这种模式在.NET框架中尤其常见,它为面向对象编程提供了灵活的事件处理机制。在这个例子中,我们将关注如何...
- 使用`delegate`关键字定义一个自定义的委托类型,这个类型定义了接受的参数和返回值类型,这应该与委托所引用的方法的签名相匹配。 ```csharp public delegate void MyEventHandler(string message); ``` 2. ...
### C#中的Delegate委托与Event事件深度解析 #### 引言 在.NET Framework中,委托(Delegate)和事件(Event)是非常重要的概念。对于初学者而言,这些概念可能较为抽象和难以理解。本文旨在通过一系列逐步深入的...
2. **声明委托**:使用`delegate`关键字来声明一个新的委托类型,定义其返回值类型和参数列表,这应与目标方法保持一致。 ```csharp public delegate void MyDelegate(string message); ``` 3. **实例化委托**:...
本文将深入探讨事件触发与委托的概念,并通过一个简单的例子来演示它们的工作原理。 首先,让我们理解什么是事件。事件是一种封装了特定操作状态或结果的通知机制,例如按钮点击或文件保存完成。事件源是发出事件的...
在iOS开发中,Delegate是一种非常重要的设计模式,它允许对象之间进行通信,特别是当一个对象(委托者)需要通知另一个对象(委托对象)某些事件发生时。本文将深入讲解“简单的Delegate实现”,并以实际代码为例,...
<accessmodifier> event <delegate type> EventName; ``` **示例**: ```csharp public delegate void PrintHandler(object sender, EventArgs e); public event PrintHandler Print; ``` 这里定义了一个 `...
本压缩包"DelegateEvent04.zip"包含了关于C#委托与事件的学习代码,帮助开发者深入理解这两种机制。 首先,我们来详细讲解一下C#中的委托。委托在C#中可以被视为类型安全的函数指针,它允许我们将方法作为参数传递...
delegate.handleServerEvent(event: event) } } } ``` 4. 在需要的地方注册和广播事件: ```swift let manager = EventManager() manager.addDelegate(delegate: ViewController1()) manager.addDelegate...
一、委托与事件的概念 1. 委托:委托在.NET Framework中相当于C++的函数指针,它允许我们将方法作为参数传递,或者将方法存储为变量。委托是类型安全的,确保只有与之匹配的签名的方法才能被分配。 2. 事件:事件...
在这个“Delegate小Demo”中,可能包含了创建、实例化、多播、调用Delegate,以及与事件处理相关的代码。通过运行和分析这个Demo,你可以更好地理解和掌握Delegate的使用技巧。记得时常回顾这些基础知识,以保持对...
在C#编程语言中,`delegate`和`事件(event)`是两个核心概念,用于实现基于对象的回调和发布/订阅模式。本文将通过一个简单的实例深入解析这两个概念,帮助初学者更好地理解和运用。 首先,`delegate`是C#中的一个...
6. **事件(Event)和Delegate**: 在C#中,事件是委托的特殊使用,用于实现发布/订阅模式。类可以声明事件,其他类可以订阅这些事件以接收通知。事件通常通过私有委托类型实现,外部只能通过`add`和`remove`访问器...
它定义了一组参数和一个返回值,与之匹配的方法必须具有相同的签名。Delegate实例可以用来调用被引用的方法,这使得我们可以传递方法作为参数,或者将方法存储在变量中。 2. 声明Delegate: 首先,我们需要创建一个...
在C#中,事件通常与`event`关键字一起使用,并遵循访问器的特定规则: ```csharp public class Publisher { public event MyDelegate MyEvent; protected virtual void OnMyEvent(string message) { MyEvent?....
本文档“delegate进行GameObject之间的通信.pdf”详细介绍了如何利用C#中的事件和委托(event/delegate)机制来优化GameObject之间的通信,提高代码的可维护性和扩展性。 #### 为什么需要进行GameObject之间的通信? ...