AI智能
改变未来

c#基础学习1——泛型


c#基础学习1——泛型

整理自慕课西安交通大学的c#程序设计
慕课西安交通大学——c#程序设计

1.泛型:

1.1使用泛型的方法:

void Display<T>(T[] input){foreach(T k in input){}}

该函数在实际调用时,由编译器自动匹配T的类型
1.2使用泛型的类:

class stack<T>{}                     //类的声明stack<int> s = new stack<int>();       //类的实例化

注意:当该类被实例化成int类型时,堆栈里面也只能存放int类型的实例,这也是相比较与用object类型的好处:只能存放一种类型,在当在使用时发生类型使用错误,编译时就会报错,而不是像使用object类型那样在运行时才会报错。
注意:
在c#中,使用object的stack类被放在

System.Collections

使用泛型stack类放在:

System.Collections.Generic

2.泛型的约束

where T:struct        //T必须为数值类型where T:class         //T必须为引用类型where T:IFoo          //T必须实现IFoo接口where T:Foo           //T必须为Foo的派生类where T:new()         //T必须具有默认构造函数

注意:若有多个约束,则用逗号分开

3.泛型缺省值

对于一个具体的类型都有其默认值,例如int的默认值为0,引用类型默认值为null。
对于泛型:

T  t = default(T);

若T被引用类型取代,T的默认值为null;T被int型取代,默认值则为0。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » c#基础学习1——泛型