2012-03-06 9 views

risposta

27

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;} 
} 
10

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.
1

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.

Problemi correlati