C#委托事件
第一步:新建一个类NumberReachedEventArgs.csusing 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]