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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值