导航

.Net 2.0 中的范型笔记 generics constraint

Posted on 2005-07-15 16:08  美丽软件  阅读(258)  评论(0编辑  收藏  举报
一、如何对范型添加约束
构造方法,在范型方法后边
public static T Max<T>(T op1, T op2) where T : IComparable
{}
在类后边
class MyList<T> where T:new()
{}
约束的种类有:
where T : struct type must be a value type (a struct)
where T : class type must be reference type (a class)
where T : new() type must have a no-parameter constructor
where T : class_name type may be either class_name or one of its
sub-classes (or is below class_name
in the inheritance hierarchy)
where T : interface_name type must implement the specified interface

约束可以联合使用,使用逗号分开,比如
where T : IComparable, new()
使用多个where语句对多个类型参数进行约束,比如class MyList<T, D> where T : new() where D : new()

当然把where语句分开在多行写会便于阅读