c# 泛型和IComparable<T>接口
泛型
因为我们在编程中想先不定义数据类型,只想先写逻辑,就可以使用Object类型,
这样我们的逻辑就适用于所有类型,但是,在运行中,Object类型的变量会需要
转换到对应类型,浪费资源,所有出现泛型,来代替object类型的方案。
使用泛型,可以让我们延迟定义数据类型,来编写程序
泛型是一种将逻辑应用到不同数据类型上的机制,可以通过类型替代符
来暂时替代参数的数据类型,这样只需要在编译的时候,编译器会自动
将该替代符编译成对应数据类型来处理
泛型方法:
访问修饰符 返回类型 方法名<T,U>(T 参数,U 参数){
}
我们可以在方法名后使用<类型替代符>来定义一个泛型方法
方法定义好后,在调用泛型方法时,应该在<>括号内填上对应的类型
使用范围:当你的方法适用于所有数据类型的时候,可以使用泛型类型来代替Object类型,以节省资源
泛型类:
访问修饰符 class 类名<T>{
T 成员;
}
类型替代符的作用:
可以让我们先不定义数据类型,只管逻辑,在调用此方法或者此类对象时,才在<>括号里填上对应类型
只有我们这段逻辑或者说这个类结构就可以适用于所有数据类型而且要比object类型节省资源
泛型集合:
在System.Collections.Generic 下的泛型数据结构类
比System.Collections下的Object类型的数据结构类要更安全,性能更好
泛型列表:
List <数据类型> 列表名 = new List<数据类型>(可填写初始长度)
属性:
Count :代表这个列表实际包含多少个元素
Capacity:代表这个列表可以包含多少个元素
方法:
Add :在列表末尾添加一个元素
Remove:删除指定的元素
RemoveAt:删除下标号指定的元素
Contains:检测是否包含这个元素
IndexOf:从头开始查找第一个匹配项的下标号,没找到返回-1
LastIndexOf:从尾开始查找第一个匹配项的下标号,没找到返回-1
Insert:在指定Index的位置,插入这个元素
Reverse:翻转当前列表的排列顺序
Sort:排序
查/改:索引器[下标号]
IComparable <T> 接口:
可以实现Sort对复杂数据类型的排序
让你的类实现ComparaTo<T other>方法
会返回一个int值
其含义: 大于零:对象大于other参数;
小于零:对象小于other参数;
等于零:对象等于other参数;