| T进行IComparable约束,这时在类Node里就可以对T的实例执行CompareTo方法了。这个问题可以扩展到其他用户自定义的数据类型。 假如在类Node里需要对T重新进行实例化该怎么办呢?因为类Node中不知道类T到底有哪些构造函数。为了解决这个问题,需要用到new约束: public class Node<T, V> where T : Stack, new() where V: IComparable 需要注重的是,new约束只能是无参数的,所以也要求相应的类Stack必须有一个无参构造函数,否则编译失败。 C#中数据类型有两大类:引用类型和值类型。引用类型如所有的类,值类型一般是语言的最基本类型,如int, long, struct等,在泛型的约束中,我们也可以大范围地限制类型T必须是引用类型或必须是值类型,分别对应的要害字是class和struct: public class Node<T, V> where T : class where V: struct
|
| 共12页: 上一页 [1] [2] [3] [4] [5] [6] 7 [8] [9] [10] [11] [12] 下一页 |
评论加载中…