zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    别让你的生活止于平庸!(摘)
    NSURLSession 请求
    第三方原理
    iOS实用的小技巧
    简书APP
    网络请求
    JQuery 简介
    struts2拦截器的实现原理及源码剖析
    hibernate配置文件注意点
    hibernate中三种状态
  • 原文地址:https://www.cnblogs.com/yanmantianxia/p/5481906.html
Copyright © 2011-2022 走看看