¿Es posible agregar el comportamiento del indexador desde una interfaz?¿Cómo definir el comportamiento del indexador a una interfaz?
algo como esto:
interface IIndexable<T>
{
T this[string index];
}
¿Es posible agregar el comportamiento del indexador desde una interfaz?¿Cómo definir el comportamiento del indexador a una interfaz?
algo como esto:
interface IIndexable<T>
{
T this[string index];
}
Sí, es posible. De hecho, todo lo que te falta es el getter/setter en tu indexador. Sólo tiene que añadir la siguiente manera:
interface IIndexable<T>
{
T this[string index] {get; set;}
}
De MSDN:
public interface ISomeInterface
{
//...
// Indexer declaration:
string this[int index]
{
get;
set;
}
}
indexadores pueden ser declarados en una interfaz (Referencia de C#). Descriptores de acceso de indizadores de interfaz difieren de los descriptores de acceso de indexadores de clase en los siguientes maneras: accessors
- de interfaz no usan modificadores.
- Un acceso de interfaz no tiene un cuerpo.
Un poco más interfaz genérica (tomado de IDictionary<,>
), sería:
interface IIndexable<TKey, TValue>
{
TValue this[TKey key] { get; set; }
}
Yo sólo pregunto por qué no lo incluye en mscorlib, de manera que IDictionary podría ponerlo en práctica. Hubiera tenido sentido.