委托声明定义了一个种类型,它用一组特定的参数,以及返回类型来封装方法,对于静态方法,委托对象封装要调用的方法。对于实例方法委托对象同时封装一个实例和该实例上的一个方法。如果有一个委托对象和一组适当的参数,就可以用这些参数调用该委托。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
delegate void wugongdelegate(string food);
namespace ClassLibrary1
{
class Class1
{
static void zseat(string food)
{
Console.WriteLine("张三峰:" + food);
}
static void zweat(string food)
{
Console.WriteLine("张无忌:" + food);
}
static void qfeat(string food)
{
Console.WriteLine("乔峰:" + food);
}
static void Main()
{
wugongdelegate zs = new wugongdelegate(zseat);
wugongdelegate zw = new wugongdelegate(zweat);
wugongdelegate qf = new wugongdelegate(qfeat);
wugongdelegate wulindahui;
Console.WriteLine("五台山,武林大会");
wulindahui = zs + zw + qf;
wulindahui("独门武功");
Console.WriteLine("乔峰一不小心杀人啦");
wulindahui -= qf;
Console.WriteLine("乔峰又去杀反对者了");
wulindahui("吵架,打嘴架");
wulindahui +=qf;
Console.WriteLine("乔峰又回来了");
wulindahui("发飙了");
}
}
}