创建一个封装List<>可通过[]操作符访问
本文关键字:可通过 访问 操作符 List 封装 一个 创建 | 更新日期: 2023-09-27 18:01:36
我有一个类,基本上是一个特定类型的封装List<>
。我可以通过使用[]
访问列表项,如果它是一个数组,但我不知道如何使我的新类从List<>
继承这种能力。我试着搜索这个,但我很确定我不知道如何正确地表达我想做什么,发现没有什么有用的。
谢谢!
,叫做 indexer :
public SomeType this[int index] {
get { }
set { }
}
List已经有了Indexer的定义,因此不需要更改该代码。它将默认工作。
public class MyClass : List<int>
{
}
我们可以在这里访问索引器。即使我们没有实现任何东西
MyClass myclass = new MyClass();
myclass.Add(1);
int i = myclass[0]; //Fetching the first value in our list ( 1 )
请注意,List类不是设计为可继承的。您应该封装它,而不是扩展它。—— Servy
这看起来就像
public class MyClass
{
private List<int> _InternalList = new List<int>();
public int this[int i]
{
get { return _InternalList[i]; }
set { _InternalList[i] = value; }
}
}
,叫做 indexer 。
索引器允许对类或结构的实例进行索引数组。索引器类似于属性,只是它们的访问器使用参数。
-
索引器使对象能够以类似于数组的方式被索引。
-
get
访问器返回一个值。set
accessor赋值 -
this
关键字用于定义索引器 -
value
关键字用于定义由set索引器分配的值
这里是一个示例