本匿名示例用到的概念:
委托:传递方法,把方法的细节封装在一种新类型的对象中。它是一种特殊的对象类型,只是包含方法的细节。所以类型安全性很高。(细节:方法是联系的,它考虑到之间的联系)。
委托的使用:(1)定义。委托代表了哪种类型的方法。定义委托时,要给出它代表的方法的全部细节。关键字:delegate。位置:在定义类的地方就可定义委托(类中/外)。用:Public,private,protexted等修饰。(2)实例化(new)。(可以调用任何类型的对象上的方法)。参数就是委托引用的方法。必须写出所调用的方法名称。
匿名委托:定义和委托一样,只是在实例化时,匿名委托传的参数不是方法名而是使用一个是一个代码块。
多播委托:.用于实现一个委托包含多个方法的调用。而不用委托数组。
在学习示例笔记:
1. 明白了,怎么使使编写的代码逻辑清晰。如例子:(1)把人声明为一个大类,分别加上所需要显示的各个属性。(2)再把属性里需要用到的算法,放在另一个类中。(3)最后实例化人,把每个人的属性显示。
2. 如例子。计算一个实体时,需要用到多个算法,其中更会遇到方法调用方法,这时就用到了委托。无论是委托、匿名委托、多播委托都只是一个实施手段,需要根据实际运用而选择。
3. 区别委托、匿名委托、多播委托。 委托、匿名委托只是在实例化上不同。
代码:CalculateBonus standard_bonus = delegate(decimal sales) { return sales / 10; };
CalculateBonus standard_bonus = =new CalculateBonus(CalculateStandardBonus);
这两句执行效果是一样的!
浙公网安备 33010602011771号