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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
InitData();
}
private void InitData()
{
CalacuteDelegate calacute = new CalacuteDelegate(new CalacuteDelegate(Add));
var result = calacute(3, 5);
MessageBox.Show(result.ToString());
result = calacute(3, 7);
MessageBox.Show(result.ToString());
calacute -= Add;
calacute += Sub;
result = calacute(3, 7);
MessageBox.Show(result.ToString());
}
public int Add(int a, int b)
{
return a + b;
}
public int Sub(int a, int b)
{
return a - b;
}
}
public delegate int CalacuteDelegate(int num1, int num2);
}
总结:委托 的基本使用
1.声明委托,相当于定义方法原型
public delegate int CalacuteDelegate(int num1, int num2);
2.定义委托,用声明的委托定义委托,需要绑定的具体方法(方法的参数和返回值必须和委托类型的方法参数和返回值相同)
CalacuteDelegate calacute = new CalacuteDelegate(new CalacuteDelegate(Add));
3.使用委托,用委托代替方法调用
var result = calacute(3, 5);