4

我有一个我制作的类,它基本上是List<>对某种类型的封装。如果它是一个数组,我可以使用[]like 访问列表项,但我不知道如何让我的新类从List<>. 我尝试搜索此内容,但我很确定我不知道如何正确表达我想要做的事情并且没有发现任何有用的东西。

谢谢!

4

3 回答 3

9

这称为索引器

public SomeType this[int index] {
    get { }
    set { }
}
于 2013-02-27T15:05:06.720 回答
1

这称为索引器

索引器允许类或结构的实例像数组一样被索引。索引器类似于属性,只是它们的访问器带有参数。

  • 索引器使对象能够以与数组类似的方式被索引。

  • get访问器返回一个值。set访问器分配一个值。

  • this关键字用于定义索引器。

  • value关键字用于定义设置索引器分配的值。

这是一个示例

于 2013-02-27T15:06:10.747 回答
1

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 类不是为继承而设计的。你应该封装它,而不是扩展它。–服务

这看起来像

public class MyClass 
{
    private List<int> _InternalList = new List<int>();

    public int this[int i]
    {
        get { return _InternalList[i]; }
        set { _InternalList[i] = value; }
    }
}
于 2013-02-27T15:07:27.057 回答