详细用法:https://blog.csdn.net/kenjianqi1647/article/details/84134731

贴出我用到的部分:

using System;
namespace SimpleEvent
{
  using System;
  /***********发布器类***********/
  public class EventTest
  {
    private int value;
    public delegate void NumManipulationHandler();//声明委托
    public event NumManipulationHandler ChangeNum;//声明事件
 
    protected virtual void OnNumChanged()
    {
      if ( ChangeNum != null )
      {
        ChangeNum(); /* 第三步事件被触发,执行事件处理方法*/
      }
     else 
      {
        Console.WriteLine( "event not fire" );
        Console.ReadKey(); /* 回车继续 */
      }
    }
 
    public EventTest()  //构造方法
    {
      int n = 5;
      SetValue( n );
    }
 
 
    public void SetValue( int n )
    {
      if ( value != n )
      {
        value = n;
        OnNumChanged();
      }
    }
  }
 
 
  /***********订阅器类***********/
 
  public class subscribEvent
  {
    public void printf()
    {
      Console.WriteLine( "event fire" );
      Console.ReadKey(); /* 回车继续 */
    }
  }
 
  /***********触发***********/
  public class MainClass
  {
    public static void Main()
    {
      EventTest e = new EventTest(); /* 实例化对象,第一次没有触发事件 */
      subscribEvent v = new subscribEvent(); /* 实例化对象 */
      e.ChangeNum += new EventTest.NumManipulationHandler( v.printf ); /* 第一步注册事件 */
      e.SetValue( 7 );//第二步触发事件,事件生成时调用委托
      e.SetValue( 11 );//第二步触发事件,事件生成时调用委托
    }
  }
}
分类: C# 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录