簡體   English   中英

在實現接口時,如何實現索引器屬性?

[英]When implementing an interface, how do you implement an indexer property?

我正在使用以另一種語言創建的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; }的語法糖{ get; set; } { get; set; } { 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM