实现接口时,如何实现索引器属性?



我正在使用用另一种语言创建的COM API,并且我正在使用C#访问它。 我正在尝试实现其中一个接口,但我在 VS 中看到一个错误,上面写着:

"MyClass"不实现接口成员"InterfaceName.MemberName[object].set"。

我四处搜索,并了解了一些有关索引器属性的信息(我认为这是(。 但是,我仍然无法弄清楚如何实现此接口成员。

我拼凑的代码看起来像这样

private string[] membername= new string[10];
[System.Runtime.CompilerServices.IndexerName("MemberName")]
public string this[object index]
{
get
{
return membername[(int)index];
}
set
{
membername[(int)index] = value;
}
}

但这似乎行不通。

任何帮助将不胜感激。


在我正在使用的文档中,这是给出的示例。

Public Property MemberName( _
ByVal Index As Variant _
) As String

事实证明,在这种情况下,你不能使用{ get; set; }的句法糖。 实际上,您必须为索引属性的获取和集合创建基础方法。

工作代码如下所示...

private string[] MemberName = new string[10];
public string get_MemberName(object Index)
{
return MemberName[(int)Index];
}
public void set_MemberName(object Index, string Value)
{
MemberName[(int)Index] = Value;
}

最新更新