对于基础太模糊下一步需要清晰 几个目标

委托和事件:委托是可方法当做参数来进行动态赋值。   事件:可以添加多个方法,然后放在委托里依次执行,可以优化选择结构(ifelse)

泛型:<T>,替代OBJECT类型,不会有开箱拆箱的过程,定义方法时定义为泛型,实例使用时指定类型

扩展方法:

(1)先决条件

        <1>扩展方法必须在一个非嵌套、非泛型的静态类中定义

        <2>扩展方法必须是一个静态方法

        <3>扩展方法至少要有一个参数

        <4>第一个参数必须附加this关键字作为前缀

        <5>第一个参数不能有其他修饰符(比如ref或者out)

        <6>第一个参数不能是指针类型

      (2)注意事项

        <1>跟前面提到的几个特性一样,扩展方法只会增加编译器的工作,不会影响性能(用继承的方式为一个类型增加特性反而会影响性能)

        <2>如果原来的类中有一个方法,跟你的扩展方法一样(至少用起来是一样),那么你的扩展方法奖不会被调用,编译器也不会提示你

        <3>扩展方法太强大了,会影响架构、模式、可读性等等等等....

接口:

IEnumerable和IEnumerator :

待续

原文地址:https://www.cnblogs.com/wqtmelo/p/7298785.html