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

  • :未知  Դ:internet  :2007-5-20 16:49:07  ؼ:c#
  • 您可以为您的类使用的每个一般类型参数提供约束,例如:

    public class LinkedList where K : IComparable where T : ICloneable {...}

    您可以具有一个基类约束,这意味着规定一般类型参数派生自特定的基类:

    public class MyBaseClass {...} public class LinkedList where K : MyBaseClass {...}

    但是,在一个约束中最多只能使用一个基类,这是因为 C# 不支持实现的多重继承。显然,您约束的基类不能是密封类或静态类,并且由编译器实施这一限制。此外,您不能将 System.DelegateSystem.Array 约束为基类。

    您可以同时约束一个基类以及一个或多个接口,但是该基类必须首先出现在派生约束列表中:

    public class LinkedList where K : MyBaseClass, IComparable {...}

    C# 确实允许您将另一个一般类型参数指定为约束:

    public class MyClass where T : U {...}

    在处理派生约束时,您可以通过使用基类型本身来满足该约束,而不必非要使用它的严格子类。例如:

    public interface IMyInterface {...} public class MyClass where T : IMyInterface {...} MyClass obj = new MyClass();

    或者,您甚至可以:

    public class MyOtherClass {...} public class MyClass where T : MyOtherClass {...} MyClass obj = new MyClass();

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