---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
委托是一个类,它定义了方法的类型,使得可以将方法当做另一个方法的参数来进行传递。这种将方法动态地赋给参数的做法,避免了在程序中大量使用条件选择语句,同时使程序具有更好的可扩展性。使用委托还可以将多个方法绑定到同一个委托变量,当调用此变量时,可以依次调用所有绑定的方法。
class Program
{
static void Main(string[] args)
{
//声明一个委托类型的对象handler,即将委托实例化了,并把对它进行的方法调用传递给方法,即调用方handler传递给委托的参数,hello world 被传递给方法DelegateMethod,来自方法的返回值由委托返回给调用方,
//创建委托方法
MyDelegate handler = DelMethod;
//调用委托
handler("hello, world");
Console.ReadKey();
}
//下述语句声明了一个名为MyDelegate的委托,该委托可以封装一个采用字符串作为参数并返回oid的方法
public delegate void MyDelegate(string message); //创建委托方法
public static void DelMethod(string message) //定义了一个静态方法,message代表的值将由定义的委托MyDelegate返回给调用方
{
System.Console.WriteLine(message);
}
}
理解委托的一个好方式是把委托的作用当做是给方法签名指定名称。
总结:委托其实也只是一个类,它派生自System.MulticastDelegate。
既然委托是一个类,那它实例化出来的当然也是一个对象,它存储了一个类的方法的引用。
委托是一个定义签名的类型,即方法的返回值类型和参数列表类型。
可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------