-
栈(Stack):
栈是先进后出,后进先出的一种容器。
操作:
出栈:Pop
入栈:Push
获取栈顶元素:Peek
查看全部 -
字典操作,键值对
查看全部 -
字典,唯一标识
查看全部 -
动态数组ArrayList
1、初始化,可以不指定大小 (数组初始化必须指定大小)
2、获取长度,使用Count属性
3、添加Add
4、删除Remove,RemoveAt
5、访问 [index]
缺点:
1、较数组耗费更多内存
2、存取速度大于数组
3、内部数据类型为object,需要装箱/拆箱
查看全部 -
预定义的常用集合:
1、动态数组:ArrayList
2、列表:List
3、字典:Dictionary
4、队列:Queue
5、栈:Stack
查看全部 -
2-4weidong查看全部
-
实现泛型接口语法
class A: IMyself<A>
{
public A Myself(A self); //类型参数可以是实现类本身或者是其他类型
}
查看全部 -
泛型接口:与泛型类相似
语法:
interface IMyself<T>
{
T Myself(T self); //可做返回值类型,也可做实参类型
}
查看全部 -
语法:
void Cage<T> where T:Pet,IClimbTree,new()
{
.....
}
查看全部 -
约束叠加规则:
A.主约束 B.接口约束 C.构造约束
查看全部 -
约束的意义:只有添加了约束,才能调用泛型参数种(比如T)的方法。
约束的类型:
类名、class 、struct、 接口名、new()
查看全部 -
泛型方法:方法的模型,给定具体的类型,就可以实例化出一个操作该类型的具体方法
语法:
class Dog //普通类
{
void DogIsHappy<T>(T target) // 泛型方法
{
}
}
说明:T为类类型
查看全部 -
泛型类优势:
1)代码量更小,无论多少种笼子,我们只需要一个实现
2)只有需要的类型才会被实例化
3)易于维护,修改模板,所有的实例都将改变
查看全部 -
为什么需要泛型:
用基类或者公共的接口,甚至是所有类的基类object,也可以实现一个Cage类,但是类型太宽泛,需要显示转换类型,并且判断真实类型是什么。
泛型实例化:
class Cage<T>{.....} //泛型类声明
Cage<Dog>dogCage; //类型的引用
dogCage=new Cage<Dog>(); //构造实例
查看全部 -
泛型类:就是一个模子,装入类型的材料,可以塑造出想要的产品。
语法:
class Cage<T>
{
T[] petsArray;
public void PutIn(T pet) //方法 (放入)
{.....}
public T TakeOut(int index) // 方法 (取出)
{....}
}
说明:T为占位符。类型:为类类型。
查看全部
举报