我爱Aspx >> Asp.Net >> C# 泛型简介public class LinkedList where K : IComparable { T Find(K key) { Node current = m_Head; while(current.NextNode != null) { if(current.Key.CompareTo(key) == 0) break; else current = current.NextNode; } return current.Item; } //Rest of the implementation }
您还将在您约束的接口的方法上获得 IntelliSense 支持。
当客户端声明一个 LinkedList 类型的变量,以便为列表的键提供类型实参时,客户端编译器将坚持要求键类型派生自 IComparable ,否则,将拒绝生成客户端代码。
请注意,即使该约束允许您使用 IComparable ,它也不会在所使用的键是值类型(例如,整型)时,消除装箱所带来的性能损失。为了克服该问题,System.Collections.Generic 命名空间定义了一般接口 IComparable :
public interface IComparable { int CompareTo(T other); bool Equals(T other); }
您可以约束键类型参数以支持 IComparable ,并且使用键的类型作为类型参数;这样,您不仅获得了类型安全,而且消除了在值类型用作键时的装箱操作:
public class LinkedList where K : IComparable {...}
实际上,所有支持 .NET 1.1 中的 IComparable Ҷƪл˵?
《Effective C#》 翻译札记[05-20]
C#实现WEB服务器[05-20]
C#中时间差的计算[05-20]
C#四种Eval测试结果:不要用Code..[05-20]
通常C#面试题[05-20]
用C#与XML创建动态分层菜单[05-20]
C#数值结果表(格式化字符串)[05-20]
用浏览器来接收C# 的程序返回的时..[05-20]
使用C# 编写扩展存储过程[05-20]
C#正则表达式应用范例[05-20]
《Effective C#》 翻译札记[05-20]
Visual Studio 2005 新功能、新特..[05-20]
对mssql出现选定的用户拥有对象而..[05-20]
常用正则表达式[05-20]
将 Web 项目从 VS2002/2003 转换..[05-20]
Visual Studio 术语表[K-Z][05-20]
使用 Visual Studio 2005 Team S..[05-20]
常用CHM帮助文档集锦下载[2007-0..[05-20]
常用.NET工具下载(包括.NET可再发..[05-20]
怎么样察看经过编译过的代码exe或..[05-20]