1

我正在使用以另一种语言创建的 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
4

1 回答 1

0

事实证明,在这种情况下,你不能使用{ get; set; }. 您实际上必须为索引属性的 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;
}
于 2018-05-15T13:04:48.587 回答