• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#事件用法实例浅析

C#事件用法实例浅析

作者:永远爱好写程序 字体:[增加 减小] 来源:互联网 时间:2017-05-28

永远爱好写程序 通过本文主要向大家介绍了c#委托和事件实例,c#事件实例,c#窗口界面设计实例,c#web开发实例,c#实例视频教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#事件用法。分享给大家供大家参考。具体分析如下:

EventHandler<TEventArgs>的定义如下
public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e) where TEventArgs:EventArgs
第一个参数必须是object类型(是一个对象,包含事件的发送者)
第二个参数是T类型(即泛型),定义了一个T的约束,它必须派生自基类EventArgs
CardInfoEventArgs 就派生自基类EventArgs

举例

#region 测试事件1
//EventArgs类
public class CardInfoEventArgs : EventArgs
{
public string Car { get; private set; }
public CardInfoEventArgs(string car)
{
  this.Car = car;
}
}
//触发事件的类
public class CarDealer
{
public event EventHandler<CardInfoEventArgs> NewCardInfo;
public void NewCar(string car)
{
  Console.WriteLine("CarDealer,new car{0}", car);
  //在触发事件之前,需要检查委托NewCardInfo是否不为空。
  //如果没有订阅处理程序,委托就是空
  if (NewCardInfo != null)
  {
 NewCardInfo(this, new CardInfoEventArgs(car));
  }
}
}
//处理事件的类
public class Consumer
{
private string name;
public Consumer(string name)
{
  this.name = name;
}
//处理事件的方法
public void NewCarIsHere(object sender, CardInfoEventArgs e)
{
  Console.WriteLine("{0}:car {1} is new", name, e.Car);
}
}
#endregion
private void button_测试事件1_Click(object sender, EventArgs e)
{
  CarDealer dealer = new CarDealer();
  Consumer michael = new Consumer("Michael");
  dealer.NewCardInfo += michael.NewCarIsHere; //订阅事件
  dealer.NewCar("宝马");
  Consumer nick = new Consumer("Nick");
  dealer.NewCardInfo += nick.NewCarIsHere; //订阅事件
  dealer.NewCar("奔驰");
  dealer.NewCardInfo -= michael.NewCarIsHere; //取消订阅事件
  dealer.NewCar("奥迪");
}
</div>

测试结果截图

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#事件用法实例浅析
  • C#中委托用法实例分析
  • C#中委托和事件的区别实例解析
  • C#中事件的继承实例分析
  • C#委托delegate实例解析
  • c#委托把方法当成参数(实例讲解)
  • C#委托初级使用的实例代码

相关文章

  • 2017-05-28C#下解析HTML的两种方法介绍
  • 2017-05-28C#使用Shader实现夜幕降临倒计时的效果
  • 2017-05-28C#中使用XmlDocument类来创建和修改XML格式的数据文件
  • 2017-05-28C#基于OLEDB获取Excel文件表结构信息的方法
  • 2017-05-28使用windows控制台调试服务的方法
  • 2017-05-28C#实现Datatable排序的方法
  • 2017-05-28浅谈C#中的常量、类型推断和作用域
  • 2017-05-28C#通过yield实现数组全排列的方法
  • 2017-05-28C#操作ftp类完整实例
  • 2017-05-28C#基础知识之this关键字介绍

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#导出Excel的方法
    • 深入多线程之:深入分析Interlocked
    • c#单例模式(Singleton)的6种实现
    • C#读取XML中元素和属性值的实现代码
    • C#进程监控方法实例分析
    • C# XML序列化方法及常用特性总结分析
    • C#使用foreach语句遍历堆栈(Stack)的方法
    • 将excel数据转换成dataset示例
    • SuperSocket入门--Telnet服务器和客户端请求处理
    • 浅析c#范型中的特殊关键字where & default

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有