委托就是执行一个方法里面的代码,这个方法可以是一个对象的方法,也可以是一个静态方法。
委托类型本质上就是一种类类型,在C#中我们像建立一个类一样建立一个委托类型。
委托的定义,跟定义方法一样,只是在返回值类型前加一个delegate关健字。也可以带参数。
委托可以累加,多个方法累加在一起,按顺序执行加进来的方法。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication1
{
public delegate void MySayDelegate();//定义一个委托对象
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Me me = new Me();
MySayDelegate mysay = new MySayDelegate(me.SayHello);//把方法累加到委托对象
mysay += new MySayDelegate(me.SayLoveYou);
mysay += new MySayDelegate(me.SayBye);
mysay();//执行委托对象
}
}
public class Me
{
public void SayHello() { MessageBox.Show("你好"); }
public void SayLoveYou() { MessageBox.Show("爱你才怪"); }
public void SayBye() { MessageBox.Show("再见"); }
}
}