C# 泛型

出处:http://www.ondotnet.com/pub/a/dotnet/2004/05/17/liberty.html

 

C#是一个类型安全的语言,类型安全允许编译器(可信赖地)捕获潜在的错误,而不是在程序运行时发现。

因此,C#中,所有的变量都有一个定义的类型;当给一个对象复制给那个变量时,编译器检查赋值是否正确,如有问题,将给出错误信息。

 

在 .NET 1.1版本中,当在使用集合时,这种类型安全就失效了

由 .NET类库提供的所有关于集合的类全是用来存储基类型(Object)的。而 .NET中所有的一切都是由Object基类继承下来的,因此所有类型都可以放到一个集合中,相当于没有了类型检测。

当每次从集合中取出一个Object,都必须将它强制转换成正确的类型,对性能造成影响,产生冗长的代码

更进一步讲,如果你给集合中添加一个值类型,这个值类型就被隐式地装箱了,当你从集合中取出它的时候,又会进行一次显示地拆箱。

 

通过泛型可以定义类型安全类,而不会损害类型安全、性能或工作效率。

如下方式定义和使用一般堆栈:

public class Stack <T>
{
    T[] m_Items;
    public void Push(T item) {...}
    public T Pop() {....}  
}

Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
int number=stack.Pop 

 

转载于:https://www.cnblogs.com/chaycao/p/4884667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值