C# 之泛型详解
什么是泛型
我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。有没有一种办法,在方法中传入通用的数据类型,这样不就可以合并代码了吗?泛型的出现就是专门解决这个问题的。读完本篇文章,你会对泛型有更深的了解。
为什么要使用泛型
为了了解这个问题,我们先看下面的代码,代码省略了一些内容,但功能是实现一个栈,这个栈只能处理int数据类型:
public class Stack
{
private int[] m_item;
public int Pop(){...}
public void Push(int item){...}
public Stack(int i)
{
this.m_item = new int[i];
}
}
上面代码运行的很好,但是,当我们需要一个栈来保存string类型时,该怎么办呢?很多人都会想到把上面的代码复制一份,把int改成string不就行了。当然,这样做本身是没有任何问题的,但一个优秀的程序是不会这样做的,因为他想到若以后再需要long、Node类型的栈该怎样做呢?还要再复制吗?优秀的程序员会想到用一个通用的数据类型object来实现这个栈: public class Stack
{
private object[] m_item;
public object Pop(){...}
public void Push(object item){...}
public Stack(int i)
{
this.m_item = new[i];
}
C# 之泛型详解 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是...(); Stack<long> c = new Stack<long>(); 类实例a和b是同一类型,他们...
关键词:程序开发java泛型详解语言设计java新功能 1/2 相关文档推荐 10:泛型 17页 2财富值 第10-14章 泛型 25页 2财富值 C# 之泛型详解 7页 2财富值 C_泛...
在本例中,泛型类Test中的第二个class关键字是指定泛型类型 的参数T必须是引用...轻松学C语言之数组 37页 免费 轻松学C语言之指针 暂无评价 38页 免费 轻松学...
中的泛型详解 第 1 章 C#中的泛型详解 中的泛型 .Net 1.1 版本最受诟病的...而小王可能说 book2 大,因为它 的 Title 是以“C”开头的,而 book1 的 ...
class C<U, V> {} //合法 class D: C<string,int>{} //合法 class ...数据统计:泛型与委托 6页 免费 C# 之泛型详解 7页 1下载券 数据统计:泛型与...
C_中的泛型 14页 1下载券 C_泛型详解 9页 2下载券喜欢此文档的还喜欢 ...c#学习笔记之泛型热36时浩勇 2010-05-13 16:49 泛型是通过“参数化类型”来...
· C# does not allow non-type template parameters, such as t emplate C<...C_泛型详解 9页 2下载券 C# 使用List泛型读取和保... 2页 免费喜欢...
C#泛型探究(自学篇)_IT/计算机_专业资料。适合入门...(U a, V b, T c) { Console.WriteLine("{0...C#泛型 8页 免费 C#委托的详细讲解 17页 免费...
开发人员可以更轻松 地创建泛化的类和方法.本节将对泛型及其应用进行详细讲解. ...但 C# 通过提供编译时安全和支持将泛型提高到了一 个新水平.C# 利用了两阶段...
C# 之泛型详解 7页 1下载券 C#泛型(C# 编程指南)CSD... 33页 1下载券C#泛型编程基础知识总结 ...

我要评论