- 浏览: 119845 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
ulric:
第一个函数的for循环应该从0开始
判断一个字符串是否为回文 -
ocaicai:
c语言的影子比较重啊!呵呵O(∩_∩)O~
java实现约瑟夫环问题 -
烟的傀儡:
通俗易懂!!太棒了
java实现约瑟夫环问题 -
eachcan:
中等什么意思?非常小是多大?写文章请负点责任。
基础知识:MySQL数据类型及列类型 (1) -
rorely:
谢谢,少加了一个条件。呵呵。更正好了
编程实现“加3减3乘3除3”
■事件:事件是一种函数回调机制,它通过委托来实现函数回调。
使用事件之前,首先在需要上报的类中声明一个事件,通常包含两个步骤:
(1)定义一个委托类型(EventHandler)表示时间处理函数的类型
(2)在类中用关键字event声明一个EventHandler类型的事件,事件同样具有访问性,通常为public
delegate void MyEventHandler(Object sender,EventArgs e)
class EventClass{
public event MyEventHandler MyEvent;
}
■注册和注销事件
一个类的使用者需要处理类的事件,通常需要3个步骤:
(1)为要处理的事件增加处理函数
(2)将事件处理函数通过+=运算符注册到要处理的事件
(3)处理完成后,通过-=运算符注销不需要的事件处理函数
■
使用事件之前,首先在需要上报的类中声明一个事件,通常包含两个步骤:
(1)定义一个委托类型(EventHandler)表示时间处理函数的类型
(2)在类中用关键字event声明一个EventHandler类型的事件,事件同样具有访问性,通常为public
delegate void MyEventHandler(Object sender,EventArgs e)
class EventClass{
public event MyEventHandler MyEvent;
}
■注册和注销事件
一个类的使用者需要处理类的事件,通常需要3个步骤:
(1)为要处理的事件增加处理函数
(2)将事件处理函数通过+=运算符注册到要处理的事件
(3)处理完成后,通过-=运算符注销不需要的事件处理函数
■
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EventDelegate
{
delegate void MyEventHandler(Object sender,EventArgs e);
class EventClass {
public event MyEventHandler MyEvent;
protected void OnMyEvent(EventArgs e) {
System.Console.WriteLine("EventClass:Ready to fire a MyEvent");
if (this.MyEvent != null) {
System.Console.WriteLine("EventClass:fire a MyEvent");
this.MyEvent(this, e);
}
}
public void FireEvent() {
this.OnMyEvent(EventArgs.Empty);
}
}
class Program
{
static void GetAEvent(object sender, EventArgs e) {
System.Console.WriteLine("GetAEvent:Get a Event EventClass.MyEvent");
}
static void Main(string[] args)
{
EventClass eventClass = new EventClass();
eventClass.MyEvent += new MyEventHandler(GetAEvent);
eventClass.FireEvent();
eventClass.MyEvent -= new MyEventHandler(GetAEvent);
eventClass.FireEvent();
System.Console.ReadLine();
}
}
}
运行结果:
EventClass:Ready to fire a MyEvent
EventClass:fire a MyEvent
GetAEvent:Get a Event EventClass.MyEvent
EventClass:Ready to fire a MyEvent
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EventDelegate
{
delegate void MyEventHandler(Object sender,EventArgs e);
class EventClass {
public event MyEventHandler MyEvent;
protected void OnMyEvent(EventArgs e) {
System.Console.WriteLine("EventClass:Ready to fire a MyEvent");
if (this.MyEvent != null) {
System.Console.WriteLine("EventClass:fire a MyEvent");
this.MyEvent(this, e);
}
}
public void FireEvent() {
this.OnMyEvent(EventArgs.Empty);
}
}
class Program
{
static void GetAEvent(object sender, EventArgs e) {
System.Console.WriteLine("GetAEvent:Get a Event EventClass.MyEvent");
}
static void Main(string[] args)
{
EventClass eventClass = new EventClass();
eventClass.MyEvent += new MyEventHandler(GetAEvent);
eventClass.FireEvent();
eventClass.MyEvent -= new MyEventHandler(GetAEvent);
eventClass.FireEvent();
System.Console.ReadLine();
}
}
}
运行结果:
EventClass:Ready to fire a MyEvent
EventClass:fire a MyEvent
GetAEvent:Get a Event EventClass.MyEvent
EventClass:Ready to fire a MyEvent
发表评论
-
程序结构--the beginning of learning CSharp
2009-10-25 14:46 0属性文件夹Properties 引用文件夹:提供项目中引用到的 ... -
C# 各种数据类型的最大值和最小值常数
2009-10-25 16:01 0<!--<br /> <br /> ... -
foreach遍历数组元素
2009-10-25 16:22 0<!--<br /> <br /> ... -
C# 类属性的访问器,get与set的定义
2009-10-25 18:50 0<!--<br /> <br /> ... -
C# 类属性的访问器,get与set传统做法,同java
2009-10-25 18:52 0<!--<br /> <br /> ... -
C#类索引器的使用
2009-10-25 22:51 0<!--<br /> <br /> ... -
静态成员
2009-10-25 23:13 0静态成员通过点运算符来访问,但是不能通过对象访问,只能通过类名 ... -
继承,用冒号实现
2009-10-25 23:33 0■构造顺序:子类对象在创建时,构造函数的调用顺序是:首先调用父 ... -
C# 函数重载
2009-10-26 14:07 0方法重载,在C#中通过虚函数来实现,具体做法:现在父类中用vi ... -
C# 函数覆盖
2009-10-26 15:57 0覆盖类成员:通过new关键字修饰虚函数表示覆盖该虚函数。 一个 ... -
C#函数委托
2009-10-26 15:59 0委托是一种动态调用函数的方式,通过委托可以将一些相同类型的函数 ... -
C#事件
2009-10-26 16:31 0■事件:事件是一种函数回调机制,它通过委托来实现函数回调。 使 ... -
C# 接口
2009-10-26 18:21 0■接口:使用关键字inte ... -
C#异常
2009-10-26 18:47 0<!--<br /> <br /> ... -
异常类Exception
2009-10-26 19:06 0<!--<br /> <br /> ... -
C# 匿名类的定义
2009-10-26 20:00 0■匿名类:匿名类用来表示临时使用的只读数据,所以必须在创建时初 ... -
程序结构--the beginning of learning CSharp
2009-10-25 14:46 500属性文件夹Properties 引用文件夹:提供项目中引用到的 ... -
C# 各种数据类型的最大值和最小值常数
2009-10-25 16:01 2849<!--<br /> <br /> ... -
foreach遍历数组元素
2009-10-25 16:22 747<!--<br /> <br /> ... -
C# 类属性的访问器,get与set的定义
2009-10-25 18:50 1642<!--<br /> <br /> ...
相关推荐
C# 事件机制归纳 C# 事件机制是指在 C# 编程语言中实现事件处理的机制,包括委派、事件和事件处理过程。以下是对 C# 事件机制的详细归纳: 一、委派 委派是指一种特殊的方法签名,可以将方法作为参数传递,用于...
下面将详细介绍C#事件的概念、特点、如何声明、订阅和触发事件。 一、事件的概念 事件是对象状态改变的一种通知机制,它封装了特定操作的结果,当这个操作发生时,可以通知其他部分的代码。在C#中,事件是委托类型...
C#事件(event)使用方法详解 事件(event)是C#中的一种机制,允许对象在发生某些情况时通知其他对象。事件(event)使用方法详解将从概念、使用方法、事件编程的优点、事件与委托的关系、事件的实现等方面进行讲解。 ...
《C#事件提醒器小程序开发详解》 C#事件提醒器小程序是一款基于C#编程语言设计的日程管理工具,它能够在指定的时间点自动弹出窗口提醒用户,帮助人们更好地管理和规划日常生活与工作。该程序利用了.NET Framework的...
这个“简单的C#事件使用DEMO”是一个很好的起点,帮助初学者理解事件的工作原理和如何在实践中应用。下面将详细解释相关知识点。 1. **事件的概念**: 事件是类的成员,它表示特定状态的改变或操作的发生。事件的...
在C#编程中,事件是对象之间通信的一种方式,它允许对象向其他对象发送通知,而无需知道接收方的具体信息。事件中心是一个设计模式,用于管理和协调这些事件的注册、注销和触发。在这个简单的事件注册调用管理功能中...
在这个"C#事件Demo"中,我们将深入探讨如何创建和使用自定义事件,以及它们如何与事件处理程序交互。 首先,我们需要理解事件的基本组成部分:事件声明、事件发布者和事件订阅者。事件声明通常在类的私有部分完成,...
本文将深入探讨C#中的两个关键概念:事件和委托,并通过实例进行详细解析,帮助初学者更好地理解和运用。 首先,我们来了解什么是委托。在C#中,委托是一种类型,它代表了方法的引用,类似于函数指针。委托可以被视...
在C#编程中,事件总线(Event Bus)是一种设计模式,它允许应用程序的不同组件之间进行松耦合的通信。这种模式特别适用于大型项目或微服务架构,因为...这个简单的C#事件总线实例是学习和理解这一概念的一个好起点。
下面是一个简单的C#事件示例: ```csharp using System; // 发布者类 public class Publisher { // 定义事件,使用EventHandler委托 public event EventHandler MyEvent; // 触发事件的方法 public void ...
C#事件是.NET框架中的一种重要特性,它用于在对象之间建立松散耦合的通信机制。事件允许一个对象(事件发布者)通知其他对象(事件订阅者)发生了某些特定的事情,而无需订阅者知道发布者的具体实现细节。在C#中,...
在这个主题中,我们将深入探讨C#事件系统的概念、工作原理以及如何在实际开发中使用它们。 首先,让我们定义事件的基本概念。事件是一种特殊的成员,由一个对象(源对象)发布,当特定条件满足或某个动作发生时,...
- **事件模型**:C#事件基于.NET框架的事件模型,包括`event`关键字、`EventHandler`委托和`EventArgs`类。 - **订阅和取消订阅**:使用`+=`运算符订阅事件,`-=`运算符取消订阅。事件处理方法通常符合`void ...
2. **C#事件机制**: 在C#中,事件是基于委托(Delegate)的。委托可以被视为一种类型安全的方法指针,允许我们传递方法作为参数或者存储在变量中。事件通常包含一个或多个委托实例,用于触发特定行为。事件的声明...
C#事件监视变量变化,事件推送机制,用于变量绑定场景,后台出发前台更新操作
C#语言自C/C++演变而来。它是现代、简单、完全面向对象和类型安全的。C#语言是微软公司针对.Net平台才推出来的一门新...那么在C#中,是怎样声明事件并为事件添加响应方法的呢?下面的文章对此为大家作了详细的讲述。
这个"一个C#事件程序源码"的示例就是一个典型的事件处理机制的实践,主要涉及到以下几个关键概念和技术: 1. **事件(Event)**:在C#中,事件是一种特殊的委托类型,它限制了订阅和触发事件的代码。事件通常由发布...
在这个C#事件的使用案例中,我们看到一个典型的WinForms应用程序,用于管理询价记录和报价记录。当用户在编辑页面(FrmEnquiryEdit)新增询价记录并保存时,系统需要将新记录实时反映到主界面(FrmEnquiry)上。这个过程...
C#事件使用Demo(类内和类间),代码含有详细注释;类内是直接刷新FormMain UI,类间是Set窗体刷新FormMain UI /// /// 定义委托类型 /// public delegate void DelegateMainUI(); /// /// 定义委托事件 /// ...
这个"C#事件传参"的Demo就是为了演示如何在不同的C#窗体之间通过事件来传递数据,实现更加灵活的交互。 首先,我们需要理解事件的基本概念。在C#中,事件是基于委托(Delegate)的,委托可以视为指向方法的引用,...