Как использовать индексатор реализуемый через интерфейс с параметрами?
Интерфейс:
internal interface IMyDict<TKey, TValue>
{
// ...
string this[int index] { get; }
// ...
}
Реализация:
class MyDictionary<TKey, TValue> : IMyDict<TKey, TValue>
{
string this[int i] => $"{keys[i]}: {values[i]}";
string IMyDict<TKey, TValue>.this[int i] => $"{keys[i]}: {values[i]}";
public override string ToString()
{
string str = "";
if (length != 0)
{
for (int i = 0; i < length; i++)
{
str = this[i] + ", ";
}
}
return str;
}
}
Т.е. в реализации два индексатора - дополнительный и реализуемый. Хотелось бы понять как использовать реализуемый. В коде при переопределении метода ToString() я как раз вынужден из-за отсутствия этого знания использовать лишний(дополнительный) индексатор. Как использовать индексатор реализуемый через интерфейс с параметрами?
Ответы (1 шт):
Автор решения: Евгений
→ Ссылка
нужно привести объект к интерфейсу, тогда будет использована явная реализация:
((IMyDict<TKey, TValue>)this)[i]