泛型 问题
class A <T>
{
......
}
A <int> ia = new A <int> ();
A <Ohter> oa = new A <Ohter> ();
现在泛型类A存在。
我想再创建类: IntA 和 OhterA
使得: IntA和A <int> , OtherA和 A <Other> 功能一样。
即: A <int> ia = new A <int> ();
IntA ia = new IntA(); 产生的对象有一样功能。
即在一个泛型类中产生非泛型的子类。
就像微软的集合对象 有: ObjectCollection, TreeNodeCollect, GridViewRowCollectin等。
------解决方案--------------------这样可以么
class IntA:A <int>
{
......
}
class IntA:A <Ohter>
{
......
}
------解决方案--------------------集合类没有使用泛型的,是使用object来操作的。这样的操作有限制就是要求不使用对应类型的特性,比如如果是值类型,会被隐式的装箱,需要实际的类型支持ICompare等。
但集合类型是实现了System.Collections.ICollection接口的。
以下是.net中的ArrayList的定义:
[Serializable, DebuggerDisplay( "Count = {Count} "), DebuggerTypeProxy(typeof(ArrayListDebugView)), ComVisible(true)]
public class ArrayList : IList, ICollection, IEnumerable, ICloneable
你对照的实现就可以了