C#的事件
2015-08-31 02:19
525 查看
using System; using System.Collections; using System.Collections.Generic; using System.IO; namespace codeTest { class Program { static void Main(string[] args) { EventTest e = new EventTest(10); e.eNumDelegate += new codeTest.EventTest.NumDelegate(e.Show); e.eNumDelegate += (x) => { Console.WriteLine("匿名函数可以直接绑定!"); }; e.SetValue(20); IEvent ie= new MyClass(); ie.myDelegate += new MyDelegate(show); ie.Show(); ie.myEventHandler += new EventHandler(Show); ie.myEventHandler(new object(), new EventArgs()); Console.ReadLine(); } static void show() { Console.WriteLine("Show!!!"); } static void Show(object sender, EventArgs e) { Console.WriteLine("Show EventHandler"); } } class EventTest { int value; public delegate void NumDelegate(int num); public event NumDelegate eNumDelegate; public EventTest(int num) { SetValue(num); } public void OnNumChange(int num) { if (eNumDelegate != null) { eNumDelegate(num); } else { Console.WriteLine("Event is null"); } } public void SetValue(int n) { if (value != n) { value = n; OnNumChange(n); } } public void Show(int num) { Console.WriteLine(string.Format("Num is {0}", num)); } } public delegate void MyDelegate(); public interface IEvent { //微软推荐写法 EventHandler myEventHandler { get; set; } event MyDelegate myDelegate; void Show(); } public class MyClass : IEvent { public EventHandler myEventHandler { get; set; } public event MyDelegate myDelegate; public void Show() { if (myDelegate != null) myDelegate(); } } }
相关文章推荐
- 【C#】读取和写入本地txt文件
- C#基础------FileStream写入文件
- 检查密码复杂度的C#正则表达式
- C#基础------File类操作文件
- C#订阅模式
- C#中TreeView选中父节点同时选中所有的子节点
- C# 该行已经属于另一个表
- 机房重构(四)--C#的一些基础知识
- 基于C#的百度图片批量下载工具
- C#操作word文档
- C#【堆与栈 值类型 引用类型】
- C#——获取本机IP
- C#自学笔记
- BC#50 1003 The mook jong
- C# WINFORM 完全开发手册(原创)
- 数往知来C#面向对象准备〈二〉
- 抽象类、密封类及类成员(C#)
- 抽象类、密封类及类成员(C#)
- C#进阶系列——MEF实现设计上的“松耦合”(一)
- C#软件winform程序安装包制作