首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

泛型 有关问题

2012-02-02 
泛型 问题classA T{......}A intianewA int()A OhteroanewA Ohter ()现在泛型类A存在。我想

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


你对照的实现就可以了

热点排行