设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> 网站制作技术 >> C# 中的泛型
精品推荐
网站制作技术点击TOP10
·网页打印问题,打印设置,打印预览,打印分页,纵打,横打及页面的边距
·使用PHP DOM-XML创建和解析XML文件
·Asp.net可输入下拉框服务器控件
·用createPopup()方法来模似透明网页窗体
·Shake_JS选色器
·嵌入式网站媒体播放器ExoBUD MP(II) v4.1tc+
·仿QQ2003风格的导航栏
·在 Windows 系统安装虚拟网卡
·全角/半角的转换函数
·聊天室内看人家的IP
编程开发点击TOP10
·数字小键盘指法练习
·ASP.NET 程序中常用的三十三种代码
·C++经典电子书下载
·java笔试题
·Modem 常用AT指令集
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·MyEclipse 下开发JSF教程
·挂钩Windows API
·MYSQL 新版出现 Client does not support authentication protocol requested by server; consider upgrading MySQL client解决办法
·.NET 初 级 读 本
精选专题

C# 中的泛型

作者: 来源: 时间:2007-8-4 11:05:48

C# 中的泛型(3) 解决方案,如同你所猜想的那样,就是使用泛型。通过泛型,你重新获得了链接列表的   代码通用(对于所有类型只用实现一次),而当你初始化链表的时候你告诉链表所能接受的类型。这个实现是非常简单的,让我们重新回到Node类:

 

public class Node{

    Object data;

    ...

 

注意到 data 的类型是Object,(在EmployeeNode中,它是Employee)。我们将把它变成一个泛型(通常,由一个大写的T代表)。我们同样定义Node类,表示它可以被泛型化,以接受一个T类型。

 

public class Node <T>{

    T data;

    ...

 

读作:T类型的Node。T代表了当Node被初始化时,Node所接受的类型。T可以是Object,也可能是整形或者是Employee。这个在Node被初始化的时候才能确定。

 

注意:使用T作为标识只是一种约定俗称,你可以使用其他的字母组合来代替,比如这样:

 

public class Node <UnknownType>{

    UnknownType data;

    ...

 

通过使用T作为未知类型,next字段(下一个结点的引用)必须被声明为T类型的Node(意思是说接受一个T类型的泛型化Node)。

 

    Node<T> next;

 

构造函数接受一个T类型的简单参数:

 

public Node(T data)

{

    this.data = data;

    this.next = null;

}

 

Node 类的其余部分是很简单的,所有你需要使用Object的地方,你现在都需要使用T。LinkedList 类现在接受一个 T类型的Node,而不是一个简单的Node作为头结点。

 

public class LinkedList<T>{

    Node<T> headNode = null;

 

再一次,转换是很直白的。任何地方你需要使用Object的,现在改做T,任何需要使用Node的地方,现在改做 Node<T>。下面的代码初始化了两个链接表。一个是整形的。

 

LinkedList<int> ll = new LinkedList<int>();

 

另一个是Employee类型的:

 

LinkedList<Employee> employees = new LinkedList<Employee>();

 

剩下的代码与第一个版本没有区别,除了没有装箱、拆箱,而且也不可能将错误的类型保存到集合中。

 

LinkedList<int> ll = new LinkedList<int>();

for ( int i = 0; i < 10; i ++ )

{

    ll.Add(i);

}

 

Console.WriteLine(ll);

Console.WriteLine("  Done.");

共4页 9 7 [1] [2] [3] [48 :>

C# 中的泛型 相关文章:
C# 中的泛型 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com