| T一般来说是不能适应所有类型,但怎样限制调用者传入的数据类型呢?这就需要对传入的数据类型进行约束,约束的方式是指定T的祖先,即继续的接口或类。因为C#的单根继续性,所以约束可以有多个接口,但最多只能有一个类,并且类必须在接口之前。这时就用到了C#2.0的新增要害字: public class Node<T, V> where T : Stack, IComparable where V: Stack {...} 以上的泛型类的约束表明,T必须是从Stack和IComparable继续,V必须是Stack或从Stack继续,否则将无法通过编译器的类型检查,编译失败。 通用类型T没有特指,但因为C#中所有的类都是从object继续来,所以他在类Node的编写中只能调用object类的方法,这给程序的编写造成了困难。比如你的类设计只需要支持两种数据类型int和string,并且在类中需要对T类型的变量比较大小,但这些却无法实现,因为object是没有比较大小的方法的。了解决这个问题,只需对
|
| 共12页: 上一页 [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] [11] [12] 下一页 |
评论加载中…