认识“委托”
一、委托的基本概念和使用方法描述:
概念:
委托声明定义了一种类型,它用一组特定的参数以及返回类型来封装方法。委托的本质就是类,在任何可以声明类的地方,都可以声明委托。
使用方法:
如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。
对于静态方法,委托对象封装要调用的方法。
对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。
二、委托使用举例:
//声明委托
delegate void MyDelegate1(string s);
public class MyClass
{
public static void Hello(string s)
{
// do something1
}
public void AMethod(string s)
{
// do something2
}
}
// 实例化委托到静态方法
MyDelegate1 a = new MyDelegate1(MyClass.Hello);
// 实例化委托到对象p的 Amethod 的实例方法
MyClass p = new MyClass();
MyDelegate1 b = new MyDelegate1(p.AMethod);
// 调用委托
a("Jacky");
b("Zhong");
三、“委托”的特点总结
<1>C# 中的委托类似于 C 或 C++ 中的函数指针。使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与 C 或 C++ 中的函数指针不同,委托是面向对象、类型安全的,并且是安全的。
<2>委托的一个有趣且有用的属性是,它不知道或不关心自己引用的对象的类。任何对象都可以;只是方法的参数类型和返回类型必须与委托的参数类型和返回类型相匹配。这使得委托完全适合“匿名”调用。(??有待理解)