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 

 

posted on 2015-10-16 10:58  头上长了根草  阅读(91)  评论(0编辑  收藏  举报

导航