博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中事件的定义和使用
阅读量:7063 次
发布时间:2019-06-28

本文共 1124 字,大约阅读时间需要 3 分钟。

事件的声明和使用与代理有很密切的关系,事件其实是一个或多个方法的代理,当对象的某个状态发生了变化,代理会被自动调用,从而代理的方法就被自动执行。

声明和使用一个事件需要如下步骤:

1.创建一个代理。
2.在类的内部利用event关键字声明事件,并且在类中定义调用事件的方法,也可以定义一个处理事件消息的方法。
   声明一个事件的基本形式有两种:
  修饰符  event   类型   标识符
  修饰符  event   类型   标识符{get{};set{};}
其中:
  修饰符是指C#语言的访问修饰符;类型是在声明使用事件的第一步中创建的代理;标识符是一个C#语言的合法标识符,这个标识符被用来在程序中唯一确定声明的事件;在声明事件的第二种形式中具有和类的属性类似的get和set部分,事件的get和set部分意义、使用方法均与属性类似。
3.声明若干个方法与事件关联。将事件同方法进行关联的过程类似于代理对象引用方法的过程。这些方法就是用来处理事件的方法。
4.最后,在程序中使用事件。使用事件需要根据事件的定义或者直接调用事件已经定义好的调用事件的方法,或者通过系统消息来自动触发事件。

下面,给出一个简单的例子来说明事件的声明和使用。

using System;

//声明一个代理
public delegate void MyDelegate(object o);
//声明一个类,在类的内部声明事件
public class MyClass
{
  //利用上面的代理声明一个事件
  public event MyDelegate MyEvent;
  //定义一个方法调用事件
  public void FireAway(object o);
 {
  if(MyEvent!=null)
   {
    //调用处理事件的方法
     MyEvent(o);
   }
  }
}

public class MainClass

{
  //创建一个处理事件的方法
  private static void EventFunction(object o)
  {
    Console.WriteLine("发生某种事件:",o);
  }
  //主方法
  public static void Main()
  {
   //声明一个对象
   MyClass m = new MyClass();
   //将处理事件的方法和事件关联,其形式类似使用多重代理
   m.MyEvent += new MyDelegate(EventFunction);
   //触发事件
   m.FireAway(m);
  }
}

转载于:https://www.cnblogs.com/suifengpiaoshan/archive/2012/02/20/2358798.html

你可能感兴趣的文章
如何提高队列的消息处理效率
查看>>
Java中的代理
查看>>
Android深度探索读后感 第三章
查看>>
Aidl
查看>>
顺序表的静态建立
查看>>
「技巧」如何快速安装 Sketch 插件
查看>>
C#中对文件的操作小结
查看>>
事件流
查看>>
苹果中毒员工称症状复发:入住当地医院遭拒
查看>>
numpy数组及处理:效率对比
查看>>
javascript事件模型
查看>>
线性表
查看>>
spring 的权限控制:security
查看>>
python基础===map和zip的用法
查看>>
常见复杂指针声明的解析(很详细)
查看>>
Java反射(Reflection)获取运行时类的结构
查看>>
获取系统热键链表windbg脚本 GetHotkeys windbg script
查看>>
3.2、Android Studio在物理设备中运行APP
查看>>
iOS LaunchImage快速设置
查看>>
海量数据面试题----分而治之/hash映射 + hash统计 + 堆/快速/归并排序
查看>>