我在尝试获取从 CollectionBase 继承的 class 的索引时收到以下错误:无法使用 [] 应用索引
I receive the following error while trying to get the index of a class that inherits from CollectionBase: Cannot apply indexing with []
我有一个 class 继承自 CollectionBase
。
public NavigationMenuItemsCollection MenuItems { get; set; }
我有一个方法试图从索引中获取项目,但它不起作用。
public void ActivatePage(int index)
{
NavigationMenuItem navigationMenuItem = (NavigationMenuItem)MenuItems[0];
}
CollectionBase 继承自 IList
、ICollection
和 IEnumerable
。所以我认为它可以被索引。对正在发生的事情有什么想法吗?
CollectionBase
使用显式接口实现 IList
的索引器 属性,这意味着您通常必须将集合转换为 IList
访问它。
NavigationMenuItem navigationMenuItem = (NavigationMenuItem)((IList)MenuItems)[0];
如果你能修改NavigationMenuItemsCollection
的源代码,你应该能自己给它添加一个索引器,如第一个例子here。
public class NavigationMenuItemCollection : CollectionBase {
public NavigationMenuItem this[ int index ] {
get {
return( (NavigationMenuItem) List[index] );
}
set {
List[index] = value;
}
}
...
我有一个 class 继承自 CollectionBase
。
public NavigationMenuItemsCollection MenuItems { get; set; }
我有一个方法试图从索引中获取项目,但它不起作用。
public void ActivatePage(int index)
{
NavigationMenuItem navigationMenuItem = (NavigationMenuItem)MenuItems[0];
}
CollectionBase 继承自 IList
、ICollection
和 IEnumerable
。所以我认为它可以被索引。对正在发生的事情有什么想法吗?
CollectionBase
使用显式接口实现 IList
的索引器 属性,这意味着您通常必须将集合转换为 IList
访问它。
NavigationMenuItem navigationMenuItem = (NavigationMenuItem)((IList)MenuItems)[0];
如果你能修改NavigationMenuItemsCollection
的源代码,你应该能自己给它添加一个索引器,如第一个例子here。
public class NavigationMenuItemCollection : CollectionBase {
public NavigationMenuItem this[ int index ] {
get {
return( (NavigationMenuItem) List[index] );
}
set {
List[index] = value;
}
}
...