可以将构造函数约束与派生约束组合起来,前提是构造函数约束出现在约束列表中的最后: public class LinkedList where K : IComparable,new() 引用/值类型约束 可以使用 struct 约束将一般类型参数约束为值类型(例如,int、bool 和 enum),或任何自定义结构: public class MyClass where T : struct 同样,可以使用 class 约束将一般类型参数约束为引用类型(类): public class MyClass where T : class 不能将引用/值类型约束与基类约束一起使用,因为基类约束涉及到类。同样,不能使用结构和默认构造函数约束,因为默认构造函数约束也涉及到类。虽然您可以使用类和默认构造函数约束,但这样做没有任何价值。可以将引用/值类型约束与接口约束组合起来,前提是引用/值类型约束出现在约束列表的开头。 泛型和强制类型转换 C# 编译器只允许将一般类型参数隐式强制转换到 Object 或约束指定的类型,如代码块 5 所示。这样的隐式强制类型转换是类型安全的,因为可以在编译时发现任何不兼容性。 代码块 5. 一般类型参数的隐式强制类型转换 interface ISomeInterface 编译器允许您将一般类型参数显式强制转换到其他任何接口,但不能将其转换到类: interface ISomeInterface |
正在阅读:C# 最强大的功能--泛型简介C# 最强大的功能--泛型简介
2005-06-23 10:16
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键