您的位置:首页 > 其它

CollectionBase集合的基类

2011-03-12 08:54 183 查看
构造集合类,可以通过继承CollectionBase,而CollectionBase实现了IList、ICollection、IEnumerable接口。

IEnumerable接口实现了GetEnumerator()方法,实现了对结果的枚举。

//摘要:
//公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。
[ComVisible(true)]
[Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")]
publicinterfaceIEnumerable
{
//摘要:
//返回一个循环访问集合的枚举数。
//
//返回结果:
//可用于循环访问集合的System.Collections.IEnumerator对象。
[DispId(-4)]
IEnumeratorGetEnumerator();
}
ICollection继承自IEnumerable接口,在些基础上添加了三个属性与一个方法。
intCount{get;}
boolIsSynchronized{get;}
objectSyncRoot{get;}

voidCopyTo(Arrayarray,intindex);
IList接口实现了以上二个接口又添加了新的属性与方法
intAdd(objectvalue);
voidClear();
boolContains(objectvalue);
intIndexOf(objectvalue);
voidInsert(intindex,objectvalue);
voidRemove(objectvalue);
voidRemoveAt(intindex);


objectthis[intindex]{get;set;}
boolIsReadOnly{get;}
boolIsFixedSize{get;}
现在回到CollectionBase类中,首先看一下类的定义
publicabstractCollectionBase:IList,ICollection,IEnumerable
{
//构造函数
protectedCollectionBase();
protectedCollectionBase(intcapacity);
//属性定义

publicintCapacity{get;set;}
publicintCount{get;}
protectedArrayListInnerList{get;}
protectedIListList{get;}

//方法定义
publicvoidClear();
publicIEnumerableGetEnumerator();
protectedvirtualvoidOnClear();
protectedvirtualvoidOnClearComplete();
protectedvirtualvoidOnInsert(intindex,objectvalue);
protectedvirtualvoidOnInsertComplete(intinedx,objectvalue);
protectedvirtualvoidOnRemove(intindex,objectvalue);
protectedvirtualvoidOnRemove(intindex,objectvalue,objectnewValue);
protectedvirtualvoidOnSet(intindex,objectoldValue,objectnewValue);
protectedvirtualvoidOnSetComplete(intindex,objectoldValue,objectnewValue);
protectedvirtualvoidOnValidate(objectvalue);
publicvoidRemoveAt(intindex);
}
自定义集合类时可以扩展CollectionBase
publicsealedclassMyCollection:CollectionBase
{

//这里可以自定义自己的索引包含添加删除操作
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐
章节导航