关于委托的基础知识
Delegate
1、想象成C++中的函数指针,不同点在于Delegate完全面向对象,既封装了方法又封装了对象。
可以看成是方法的接口。
2、定义委托其实是定义一个类型的委托,而不是一个具体的实例。
3、委托类型指定他方法的返回类型和参数表。
4、它代表具有相同参数列表和返回类型的任何方法。
5、委托的声明:
访问修饰符 delegate 返回值类型 委托名(参数表)
6、创建实例 MyDelegate md=new MyDelegate(MyObject.MyMethod)
此方法必须和代理时声明的返回类型和参数列表相同
7、调用
public delegate int MyDelegate(int i)
public class UseDelegate
{
public int CallDelegate(int i,MyDelegate md)
{
return md(i);
}
}
8、把委托的单个实例合并成一个多播委托,委托必须是同类型的,返回类型必须是void,不能带输出参数,可以带引用参数。
1、想象成C++中的函数指针,不同点在于Delegate完全面向对象,既封装了方法又封装了对象。
可以看成是方法的接口。
2、定义委托其实是定义一个类型的委托,而不是一个具体的实例。
3、委托类型指定他方法的返回类型和参数表。
4、它代表具有相同参数列表和返回类型的任何方法。
5、委托的声明:
访问修饰符 delegate 返回值类型 委托名(参数表)
6、创建实例 MyDelegate md=new MyDelegate(MyObject.MyMethod)
此方法必须和代理时声明的返回类型和参数列表相同
7、调用
public delegate int MyDelegate(int i)
public class UseDelegate
{
public int CallDelegate(int i,MyDelegate md)
{
return md(i);
}
}
8、把委托的单个实例合并成一个多播委托,委托必须是同类型的,返回类型必须是void,不能带输出参数,可以带引用参数。