说明:委托就是持有一个或多个方法的对象,并且该对象可以执行,可以传递。
1、声明委托类型
委托可以持有方法; 可以声明,它也是一种引用类型;
delegate void ActCute();
2、定义委托类型的对象
既然委托是一种类型,那么就可以定义该类型的对象:
ActCute act;
3、给委托对象赋值
class Dog
{
public void WaigTail()
{
console.WriteLine("Wag Tail!");
}
}
Dog dog;
act=dog.WagTail;
4、使用委托类型
act();
实例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Delegate_test
{
class Program
{
delegate void ActCute();//ActCute是委托类型
class Dog
{
public void WaigTail()//Dog类的方法
{
Console.WriteLine("Wag Tail!");
}
}
class Cat
{
public void InnocentLook()//Cat类的方法
{
Console.WriteLine("InnocentLook!");
}
}
static void Main(string[] args)
{
ActCute act = null; //act 是委托类型对象
Dog dog = new Dog();
Cat cat = new Cat();
act = dog.WaigTail;//委托类型act持有dog对象的WaigTail方法
act += cat.InnocentLook;//委托类型act加持cat对象的InnocentLook方法
act();//调用委托对象,直接调用加持的别的类中的方法
}
}
}