linghongli 发表于 2013-2-4 19:27:14

C#委托事件

第一步:新建一个类NumberReachedEventArgs.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Even2{    public class NumberReachedEventArgs:EventArgs    {          public NumberReachedEventArgs()      {                  }      } 
第二步:新建一个类Counter.cs
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Even2{    public delegate void NumberReacherEventHandle(object sender);      public class Counter    {      public event NumberReacherEventHandle NumberReached;      public void CountTo()      {            NumberReached(this);//触发那个事件方式,即调用那个方法      }    }} 
第三步:调用方法
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace Even2{    public partial class Form1 : Form    {      public Form1()      {            InitializeComponent();      }      private void button1_Click(object sender, EventArgs e)      {            Counter oCounter = new Counter();            oCounter.NumberReached+=new NumberReacherEventHandle(oCounter_NumberReached);            oCounter.CountTo();//当调用oCounter.CounTo方法时就会触发那个事件      }      private void oCounter_NumberReached(object sender)      {            MessageBox.Show("oCounter_NumberReached方法");      }    }}  
 
委托实例:新建一个控制台项目
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{    delegate void SimpleDelegate();    class Program    {      static void F()      {            System.Console.WriteLine("Test.F");      }      static void E()      {            System.Console.WriteLine("Test.E");      }      static void Main()      {            SimpleDelegate f = new SimpleDelegate(F);            f();            SimpleDelegate e = new SimpleDelegate(E);            e();      }    }}  
 
 
 
 
页: [1]
查看完整版本: C#委托事件