Estoy bastante seguro de que esto es lo que está buscando:
public TValue this[TKey key] {
get { return _dictionary[key]; }
}
Si desea implementar una interfaz para indicar al código del cliente que se puede acceder a su clase mediante un índice de tipo TKey
, la coincidencia más cercana (que yo sepa) es IDictionary<TKey, TValue>
.
Desafortunadamente, IDictionary<TKey, TValue>
tiene un montón de miembros que violan el requisito de sólo lectura, lo que significa que tendría que poner en práctica de manera explícita un montón de miembros solamente para lanzar una NotImplementedException
(o algo por el estilo) cuando se les llama: a saber, la setter para this
, Add
, Clear
y Remove
.
Quizás haya una interfaz diferente que sería más apropiada para este propósito (algo así como IReadOnlyDictionary<TKey, TValue>
?); Simplemente no me he encontrado.
También podría escribir su propia interfaz, por supuesto, si tiene la intención de tener múltiples clases que ofrecen una funcionalidad similar a esta.
¡Gracias! Es difícil buscar '[]'. No necesito ir tan lejos como para escribir mi propia interfaz, pero gracias por ese consejo, también. Solo el código que diste fue todo lo que necesito por ahora. – dlras2