namespace DelegateTest
{
class Program
{
//定义委托,它是一个函数声明,但是没有实现
public delegate string Mydelegate(string s);
// 定义类
public class A
{
// 定义方法,为了使用委托,方法签名与委托签名相同,就是返回类型 参数与委托签名相同
public string UpperMethod(string ss)
{
return ss.ToUpper();
}
// 定义方法,为了使用委托,方法签名与委托签名相同,就是返回类型 参数与委托签名相同
public string LowerMethod(string ss)
{
return ss.ToLower();
}
}
public static void Main(string[] args)
{
// 实例化类
A aa = new A();
//委托可以与你的方法绑定啦~
Mydelegate del = new Mydelegate(aa.UpperMethod);
del += new Mydelegate(aa.LowerMethod);
//调用委托,可以调到所有已经与此委托绑定的方法
Console.WriteLine(del("adAAd"));
Console.ReadLine();
}
}
}
委托常于Event连用,例如,在一个if判断后需要触发一个自己定义的事件(Event),那调用这个事件后需要用到原有的方法时就要通过委托去调用方法,
通常一个委托调用一个方法,且两者参数的类型必须相同。