C#事件(1)

阅读: 评论:0

C#事件(1)

C#事件(1)

事件就是调用一个方法自动触发一系列方法:

1.申明delegate

2.申明事件event

3.触发事件的方法

4.注册事件引发的方法,通过delegate

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 
  7 namespace Event
  8 {
  9     class Program
 10     {
 11         static void Main(string[] args)
 12         {
 13             EventTest e = new EventTest(5);
 14             e.SetValue(10);
 15 
 16             //注册事件引发的方法委托
 17             e.ChangeNum += new EventTest.NumManipulateChangeHandle(EventTest.EventFired);
 18             e.SetValue(100);
 19 
 20             I myI = new MyClass();
 21             myI.MyEvent += new MyDelegate(MyPrivate);
 22             myI.FiredWay();
 23 
 24             Console.ReadLine();
 25 
 26             
 27         }
 28 
 29         private static void MyPrivate()
 30         {
 31             Console.WriteLine("My Event fired!");
 32         }
 33 
 34         public class EventTest
 35         {
 36             //属性
 37             public int value;
 38             //声明委托
 39             public delegate void NumManipulateChangeHandle();
 40             //声明事件
 41             public event NumManipulateChangeHandle ChangeNum;
 42             //构造函数
 43             public EventTest(int n)
 44             {
 45                 SetValue(n);
 46             }
 47             //委托的事件
 48             public static void EventFired()
 49             {
 50                 Console.WriteLine("Binded event fired!");
 51             }
 52             //触发事件的方法
 53             protected virtual void OnNumChanged()
 54             {
 55                 if (ChangeNum != null)
 56                 {
 57                     ChangeNum();
 58                 }
 59                 else
 60                 {
 61                     Console.WriteLine("Event fired!");
 62                 }
 63             }
 64             //调用触发事件的方法
 65             public void SetValue(int n)
 66             {
 67                 if (value != n)
 68                 {
 69                     value = n;
 70                     OnNumChanged();
 71                 } 
 72             }
 73         }
 74 
 75         public delegate void MyDelegate();
 76 
 77         interface I
 78         {
 79             event MyDelegate MyEvent;
 80 
 81             void FiredWay();
 82 
 83         }
 84 
 85         public class MyClass : I
 86         {
 87             public event MyDelegate MyEvent;
 88 
 89             public void FiredWay()
 90             {
 91                 if (MyEvent != null)
 92                 {
 93                     MyEvent();
 94                 }
 95             }
 96         }
 97 
 98 
 99     }
100 }
View Code

 

转载于:.html

本文发布于:2024-01-28 14:27:55,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17064232818072.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:事件
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23