读书人

承继CollectionBase的类为何不能用索引

发布时间: 2011-12-19 23:23:36 作者: rapoo

继承CollectionBase的类为何不能用索引符?
CollectionBase有继承IList的索引符,为何继承它的类就用不了?
还有IList继承了ICollection和IEnumberable,为何定义CollectionBase时还要写上继承ICollection和IEnumberable?

[解决办法]
需要自己实现,例程:
/// <summary>
/// 获取包含在集合中的 Node 元素。
/// </summary>
/// <param name= "nodeName "> 要查找的 Node 的名称。 </param>
/// <returns> 单个 Role 对象。 </returns>
public Node this[string nodeName]
{
get
{
foreach (Node node in this)
{
if (node.NodeName == nodeName)
{
return node;
}
}

return null;
}
}
[解决办法]
1.是要自己实现

2.还有IList继承了ICollection和IEnumberable,为何定义CollectionBase时还要写上继承ICollection和IEnumberable?

这个问题请楼主参考这个blog
http://www.cnblogs.com/allenlooplee/archive/2004/11/16/64394.html
[解决办法]
1、因为CollectionBase对IList的那个索引器是是显示接口实现……而CollectionBase的用处就是帮你实现IList接口,并帮助你对一些事件如Add注入一些操作,你把它当作IList接口用的时候索引器就会实现,

读书人网 >C#

热点推荐