C#2.0实现ICollection和ICollection<T>的问题,高手帮忙~分不够可以再加~!~在线等~
1、想要模拟实现TreeNodeCollection,查看了一下元数据,TreeNodeCollection继承自IList, ICollection, IEnumerable。其中有实现方法
public virtual int Add(TreeNode node);
自己写的类,同样继承自IList, ICollection, IEnumerable,但是在实现public int Add方法时,IDE提示,必须使用public int Add(object item) object当作参数,而无法使用自定义类型,比如UnitNode[例:public int Add(UnitNode item)]。我也看了.net提供的其他的几个实现了IList, ICollection, IEnumerable的类,都是用的是定义的类型,比如TabPageCollection,也继承自IList, ICollection, IEnumerable,但是查看元数据的时候,根本没有实现int Add(object item)。。所以就不明白了。。希望高手指点一下,如何在继承自IList, ICollection, IEnumerable三个接口时候,实现Add方法添加自定义的类型。。
2、在实现ICollection <T> 的时候,用什么做数据集呢?ArrayList不支持范型,List <T> 缺少IsReadOnly这个属性。。请问在用List <T> 的时候,如何得到IsReadOnly这个属性呢?同样的还有IsFixedSize,SyncRoot和IsSynchronized也不知道如何实现。另外,还可以用别的时么代替List <T> 么?
------解决方案--------------------UserCollection <T> : IList <T> , IList{
public virtual void Add(T t)
{
//你的代码
}
void IList.Add(object o)
{
Add(o as T);
}
}
不知道是不是你想要的。
------解决方案--------------------1、
public interface imy
{
void test();
}
public class my:imy
{
void test()
{
//overload;
}
imy.test()
{
//override ;
}
}
2、
List <yourclas> ylist;
IList list = ylist as IList
???