读书人

泛型 有关问题

发布时间: 2012-02-02 23:57:14 作者: rapoo

泛型 问题
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


你对照的实现就可以了

读书人网 >C#

热点推荐