`
isiqi
  • 浏览: 16453205 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C#的事件机制

阅读更多
C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型
class1
{
public delegate void mydelegate (myEventArgs e);
public event mydelegate event1;
}
然后我们可以使用+=和-=注册、移除事件
class1.event1 += new mydelegate(new myEventArgs());
在class中引发事件时最好这样
class1
{
public fireEvent()
{
if(event1 != null)
event1();
}
}


如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型
public delegate void EventHandler(object sender, EventArgs e);
其中EventArgs转送附加参数。
可以实现自己的EventArgs类
class myEventArgs:EventArgs
{
}
类名最好以EventArgs 结尾,这是个默认规则
调用时如果不想使用参数可以传递
EventArgs.Empty

事件其实背后做了很多工作,自动生成一个委托实例、一个注册委托的add_XXX方法、一个注销委托的

Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:
public event MyDelegate1 Event1
{
add
{
}
remove
{
}
}
在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)

分享到:
评论

相关推荐

    c#事件机制归纳,c#事件机制归纳,c#事件机制归纳

    C# 事件机制归纳 C# 事件机制是指在 C# 编程语言中实现事件处理的机制,包括委派、事件和事件处理过程。以下是对 C# 事件机制的详细归纳: 一、委派 委派是指一种特殊的方法签名,可以将方法作为参数传递,用于...

    C++实现C#事件机制

    在C++编程中,模拟C#的事件机制是一项挑战,因为C++本身并不直接支持像C#那样的事件和委托概念。然而,通过巧妙地利用函数指针和一些设计模式,可以实现类似的功能。本文将深入探讨如何在C++中实现C#事件机制的关键...

    unity3D 与C#事件机制.

    你知道 C#有一个内置的事件机制吗?这个东东在 Unity3D里也非常好用。

    C#事件Demo

    在C#编程中,事件是对象之间通信的一种方式,它允许对象向其他对象发送通知,表明某种特定情况已经发生。事件处理是C#中的一个重要概念,尤其在...通过不断实践和学习,你将能够更好地利用C#事件机制来提升代码质量。

    C#事件与引用闹钟 出早操的闹钟

    事件在C#中是一种通信机制,它允许对象之间相互通信,尤其是当一个对象的状态改变时,可以通知其他对象。在我们的"出早操的闹钟"应用中,事件扮演着核心角色。例如,我们可以定义一个"AlarmClock"类,该类具有一个...

    C#版本EventBus事件总线实例源码(经典)

    2. **C#事件机制**: 在C#中,事件是基于委托(Delegate)的。委托可以被视为一种类型安全的方法指针,允许我们传递方法作为参数或者存储在变量中。事件通常包含一个或多个委托实例,用于触发特定行为。事件的声明...

    C#处理事件的过程

    本文将详细解析C#处理事件的六个关键步骤,帮助开发者深入理解事件处理机制。 1. **声明事件**: 在C#中,事件通常作为类的私有成员来声明,使用`event`关键字。事件可以是委托类型,它定义了事件触发时调用的方法的...

    c#事件Demo(纯源码)

    这个项目可以作为学习C#事件机制的起点,帮助开发者理解事件如何在对象之间传递信息,以及如何实现发布/订阅模式。通过阅读并运行源代码,你可以更深入地理解事件的声明、触发、订阅和取消订阅等步骤。同时,也可以...

    C#事件实例,C#事件实例,C#事件实例

    在.NET框架中,C#语言提供了强大的事件处理机制,它是一种用于实现对象间通信的方式,尤其是在用户界面编程中。事件通常与控件交互关联,比如按钮点击、文本框输入等。下面将详细介绍C#事件的概念、特点、如何声明、...

    C#事件解析

    在深入探讨C#事件机制之前,我们先简要回顾一下事件的基本概念。在面向对象编程中,事件是一种通知机制,允许一个对象(事件发布者)向其他对象(事件订阅者)发送信号,表明某些事情已经发生。这种机制是实现观察者...

    C# Message (消息机制)

    C# 中的消息机制是通过对消息的封装来实现的,其中消息被封装成了事件。 一、消息概述 消息是通知和命令,在 .NET 框架类库中的 System.Windows.Forms 命名空间中,微软采用面对对象的方式重新定义了 Message。新...

    c# 委托、事件详解及事件处理机制

    本文将详细讲解C#中的委托、事件以及事件处理机制,帮助开发者深入理解这两个概念。 首先,我们来了解**委托(Delegate)**。在C#中,委托是一种类型,它代表了方法的引用。换句话说,委托可以看作是能够存储方法...

    C#中的事件案例 c#经典案例.pdf

    这个案例展示了C#事件机制的基本用法,包括如何定义事件、如何创建自定义的事件参数类、如何触发事件以及如何订阅和处理事件。通过这种方式,`Stock` 类可以安全地向其他对象报告其价格的变化,而无需暴露过多的内部...

    事件分发_C#_事件分发_serious791_

    在本篇中,我们将深入探讨C#中的事件分发机制,并通过一个名为"demoTest"的示例项目来阐述其工作原理。 首先,事件分发的基础是委托(Delegate),它是C#中的一种类型,代表了一组方法的签名。委托可以被用来存储对...

    C#事件(event)使用方法详解

    事件(event)是C#中的一种机制,允许对象在发生某些情况时通知其他对象。事件(event)使用方法详解将从概念、使用方法、事件编程的优点、事件与委托的关系、事件的实现等方面进行讲解。 事件(event)的概念: 事件...

    C#消息处理机制

    在C#编程语言中,消息处理机制是一种核心的特性,它涉及到用户界面(UI)的交互和事件驱动编程。理解这一机制对于开发高效、响应性强的应用程序至关重要。本文将深入探讨C#的消息处理机制,包括事件、委托、事件处理...

    C#中的事件处理机制

    在C#编程中,事件处理机制是面向对象设计的一个重要组成部分,它允许对象之间通过事件进行通信,而不必知道彼此的实现细节。本文将深入探讨C#中的事件处理机制,包括预定义事件处理、自定义事件以及事件处理的工作...

    在Unity中使用C#脚本编写的教程

    在Unity中使用C#脚本编写的教程:深入解析事件机制与最佳实践 Unity是一款功能强大的游戏开发引擎,广泛应用于2D和3D游戏的创作。C#作为Unity的首选编程语言,为开发者提供了丰富的API和工具,使游戏开发变得更加...

    c# 插件机制的实现(如何通过插件的机制,实现动态功能扩展)

    在C#编程中,插件机制是一种非常重要的设计模式,它允许程序在运行时动态加载、卸载和使用外部组件,从而实现功能的扩展。这种机制对于开发可扩展性强、维护性好的软件至关重要。以下是对C#插件机制实现及其动态功能...

    C# 事件的实例

    在C#编程中,事件(Event)是一种特殊的委托类型,用于在对象之间实现松耦合的通信机制。这种机制使得一个对象(发布者)能够通知其他对象(订阅者)其状态的变化,而无需直接了解订阅者的具体实现。在这个实例中,...

Global site tag (gtag.js) - Google Analytics