C#委托
委托就是定义一种方法类型。我们知道方法是不能直接作为参数来使用的,但委托提供了一种可以将方法作为参数来传递的办法。
比如,
public delegate int MethodType1(int i,string str1);
上述语句的含义:我要定义一种方法类型,叫MethodType1,它有2个参数(第一个int,第二个是string)和返回类型为int。
此后,MethodType1就可以作为一种类型来使用了,与string,int的地位一样。
比如,
public void method1(int x,MethodType1 m1)
当然在这个方法体中你就会在适当的地方调用m1. 类似 int v = m1( 1,"str")之类的语句。
调用method1方法时,哪些方法可以带入m1呢?就是符合MethodType1定义形式的方法就可以带入,即:2个参数(第一个int,第二个是string)和返回类型为int。带入时只需方法名,当然这个方法必须是一个静态方法或者已经实例化对象的方法。
自然,作为自定义的一种类型,委托的应用就不止限于作为参数传递一种情形了。
委托就是定义一种方法类型。我们知道方法是不能直接作为参数来使用的,但委托提供了一种可以将方法作为参数来传递的办法。
比如,
public delegate int MethodType1(int i,string str1);
上述语句的含义:我要定义一种方法类型,叫MethodType1,它有2个参数(第一个int,第二个是string)和返回类型为int。
此后,MethodType1就可以作为一种类型来使用了,与string,int的地位一样。
比如,
public void method1(int x,MethodType1 m1)
当然在这个方法体中你就会在适当的地方调用m1. 类似 int v = m1( 1,"str")之类的语句。
调用method1方法时,哪些方法可以带入m1呢?就是符合MethodType1定义形式的方法就可以带入,即:2个参数(第一个int,第二个是string)和返回类型为int。带入时只需方法名,当然这个方法必须是一个静态方法或者已经实例化对象的方法。
自然,作为自定义的一种类型,委托的应用就不止限于作为参数传递一种情形了。