È possibile aggiungere il comportamento dell'indicizzatore da un'interfaccia?Come definire il comportamento dell'indicizzatore su un'interfaccia?
qualcosa di simile:
interface IIndexable<T>
{
T this[string index];
}
È possibile aggiungere il comportamento dell'indicizzatore da un'interfaccia?Come definire il comportamento dell'indicizzatore su un'interfaccia?
qualcosa di simile:
interface IIndexable<T>
{
T this[string index];
}
Sì, è possibile. In effetti, tutto ciò che ti manca è il getter/setter sul tuo indicizzatore. Basta aggiungere nel modo seguente:
interface IIndexable<T>
{
T this[string index] {get; set;}
}
Da MSDN:
public interface ISomeInterface
{
//...
// Indexer declaration:
string this[int index]
{
get;
set;
}
}
indicizzatori possono essere dichiarati su un'interfaccia (Riferimenti per C#). Di accesso di indicizzatori di interfaccia differiscono dalle funzioni di accesso di indicizzatori di classe nei seguenti modi : funzioni di accesso
- interfaccia non usano modificatori.
- Un accessorio di interfaccia non ha un corpo.
Un po 'più di un'interfaccia generica (tratto da IDictionary<,>
), sarebbe:
interface IIndexable<TKey, TValue>
{
TValue this[TKey key] { get; set; }
}
Mi chiedo solo perché non hanno incluso in mscorlib, in modo che potesse IDictionary attuarlo. Avrebbe avuto un senso.