关键词:泛型、 降低性能损失、 委托、 匿名方法、
一。类数组与List<T>与List
最明显的好处是:List<T>可变长,并且保证类型安全性(比List),没有拆箱封箱造成的性能损失。操作比"类数组"方便
二。传递参数
以list<T>.Sort方法为例。
list<T>.Sort方法有其他3个重载,分别为:
本身:Sort()
使用默认比较器对整个 List<(Of <(T>)>) 中的元素进行排序。
A: Sort(Comparison<(Of <(T>)>))
使用指定的 System..::.Comparison<(Of <(T>)>) 对整个 List<(Of <(T>)>) 中的元素进行排序。
B: Sort(IComparer<(Of <(T>)>))
使用指定的比较器对整个 List<(Of <(T>)>) 中的元素进行排序。
C: Sort(Int32, Int32, IComparer<(Of <(T>)>))
使用指定的比较器对 List<(Of <(T>)>) 中某个范围内的元素进行排序。
这里只对A、B进行逆向分析学习。
A中:
参数 Comparison<T> comparison为一委托。
委托的实现有两种方法:
其一:使用匿名委托方法
其二:使用实名委托方法
具体调用方式:
需要注意的是实名类CompareTest中的定义的方法comparetest的参数列表一定要和委托中参数列表一致,返回类型一致。
B中:
参数 IComparer<T> comparer为一类(接口类)。
这里要对接口类的子类进行实例化。在子类中要把IComparer中接口的实现。继承接口IComparer<T>进行排序
具体调用方式:
其他一些相关类代码: