• λ我爱Aspx >> Asp.Net >> C# 泛型简介
  • C# 泛型简介

  • :未知  Դ:internet  :2007-5-20 16:49:07  ؼ: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 Ҷƪл˵?

  • һƪ在 C# 中通过 P/Invoke 调用Win32 DLL
    һƪ《Effective C#》 翻译札记