如何正确使用C#索引器属性

时间:2016-07-20 06:49:58

标签: c# wpf indexing

我正在接手一个WPF C#团队项目。

其中一个类继承自具有此属性的抽象类:

[Dynamic]
        public dynamic this[string key] { get; set; }

我不熟悉这个但我认为它设置了一个索引器属性类对象?

我需要通过向此索引器添加变量来模拟这样的对象。 我该怎么办? 我期待这样的事情:

this.Add(myKey, myValue);

但编译器强烈反对:)

我应该如何将项目添加到此索引器中?

THX

1 个答案:

答案 0 :(得分:4)

类上的索引器使实例看起来好像是某种类型的数组,由你想要的任何参数键入,而不仅仅是整数

var existingValue = this["someKey"];
this["someKey"] = newValue;

要实施课程,你可以做这样的事情

public class Mine : ThatAbstractClass
{
  Dictionary<string, dynamic> IndexerValues = new Dictionary<string, dynamic>();

  public override dynamic this[string key]
  {
    get { return IndexerValues[key]; }
    set { IndexerValues[key] = value; }
  }
}