[英]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.