委托和事件:委托是可方法当做参数来进行动态赋值。 事件:可以添加多个方法,然后放在委托里依次执行,可以优化选择结构(ifelse)
泛型:<T>,替代OBJECT类型,不会有开箱拆箱的过程,定义方法时定义为泛型,实例使用时指定类型
扩展方法:
(1)先决条件
<1>扩展方法必须在一个非嵌套、非泛型的静态类中定义
<2>扩展方法必须是一个静态方法
<3>扩展方法至少要有一个参数
<4>第一个参数必须附加this关键字作为前缀
<5>第一个参数不能有其他修饰符(比如ref或者out)
<6>第一个参数不能是指针类型
(2)注意事项
<1>跟前面提到的几个特性一样,扩展方法只会增加编译器的工作,不会影响性能(用继承的方式为一个类型增加特性反而会影响性能)
<2>如果原来的类中有一个方法,跟你的扩展方法一样(至少用起来是一样),那么你的扩展方法奖不会被调用,编译器也不会提示你
<3>扩展方法太强大了,会影响架构、模式、可读性等等等等....
接口:
IEnumerable和IEnumerator :
待续