Как реализовать свойство индексатора при реализации интерфейса?
Я работаю с COM API, который был создан на другом языке, и я обращаюсь к нему с помощью C#. Я пытаюсь реализовать один из интерфейсов, но я вижу ошибку в VS, которая говорит:
MyClass не реализует элемент интерфейса InterfaceName.MemberName[объект].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
1 ответ
Оказывается, в этой ситуации нельзя использовать синтаксический сахар { 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;
}