c# 委托

    xiaoxiao2021-03-25  52

    委托:平时我们喝水,要经历三个过程一是找水杯,二是倒水,三才是喝水。

               平时实现一个功能,也是一样,需要创建一个对象,去分别调用各个方法。

               委托就是建立一个方法链,配置好,让对象依次执行这条链上各个方法。

    效果:提高代码效率,使代码容易维护。

    步骤一:声明委托

    格式:修饰符 delegate 返回类型 委托名(方法参数列表)

    说明:修饰符--public protected private internal(只能在当前应用中访问)

               deledate--委托说明符

    实例:

               public deledate int ABC(int i,int j)

    步骤二:向委托注册方法的条件

    说明:1.返回值类型相同

               2.参数列表相同(其中变量的可以不同

    实例:

             委托如:public deledate int ABC(int i,int j)

             int F1(int a,int b)      可以注册到ABC委托中

             void F1(int a,int b)   不可以注册到ABC委托中,返回值类型不同

             int F1(int a)              不可以注册到ABC委托中,参数列表不相同

             int F1(int a,string b) 不可以注册到ABC委托中参数列表不相同

    步骤三:委托实例化

    作用:创建实例化,也可以注册方法到委托

    实例:        

    namespace shilihuaweituo { public delegate int ABC(int i); class Program { public int F1(int i) { Console.WriteLine("调用实例方法 F1(int i)"); return i; } static void Main(string[] args) { Program p = new Program(); ABC abc = new ABC(p.F1); } } }

    步骤四:委托注册方法

    说明:委托除了在实例化的时候注册方法,还可以使用+=、-=,添加和移除方法。

    实例:

    namespace shilihuaweituo { public delegate int ABC(int i); class Program { public int F1(int i) { Console.WriteLine("调用实例方法 F1(int i)"); return i; } public static int F2(int i) { Console.WriteLine("调用静态方法 F2(int i)"); return i; } static void Main(string[] args) { Program p = new Program(); ABC abc01 = new ABC(p.F1); ABC abc02 = new ABC(F2); abc01 += abc02; } } } 步骤五调用委托

    实例:

    效果:

    转载请注明原文地址: https://ju.6miu.com/read-36915.html

    最新回复(0)