您的位置:首页 > 编程语言 > C#

C#中CollectionBase类中IList接口的实现

2007-06-12 19:40 736 查看
今天看了一下C#中接口的东西,发现对CollectionBase(为强类型集合提供抽象基类)中的具体实现原理不是很了解。经过查看一些资料,分析过后得到以下的初步认识。

CollectionBase主要显示的实现ICollection和IList接口。具体的显示接口实现,可以查看MSDN的相关资料。(注:ICollection主要是实现将自己的项目复制到一个项目中,IList接口主要用于按照索引单独访问的一组对象)。由于IList接口成员很多,在这里就用Add接口成员来描述,并给出一个《C#入门经典》的例子的阐述。

我们的目的是实现一个强类型集合,并且实现基本的添加,删除,和索引访问。这些实现都是通过继承CollectionBase类和使用IList接口来实现的。首先看CollectionBase的几个主要成员:

List成员定义: protected IList List {get;} //一个List属性
显示接口实现: int IList.Add( object value) //一个显示实现
我们通过List属性调用显示接口来实现元素的添加。同样删除和索引访问都要使用List属性成员来调用显示接口。

下面是代码和阐述:

//======================Animals.cs ============================
//强类型化定制集合类
//===========================================================
using System;
using System.Collections;
namespace Ch11Ex02

//======================Animal.cs ============================
//Animal类,其对象作为Animals集合类的项目
//===========================================================
using System;

namespace Ch11Ex02
//======================Class1.cs ============================
//主类,一个应用程序
//===========================================================
using System;

namespace Ch11Ex02
{
/**//// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/**//// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
Animals animalCollection=new Animals();
animalCollection.Add(new Cow("Jack"));
animalCollection.Add(new Chicken("Vera"));
foreach(Animal myAnimal in animalCollection)
{
myAnimal.Feed();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: