Я почти уверен, что это то, что вам нужно:
public TValue this[TKey key] {
get { return _dictionary[key]; }
}
Если вы хотите реализовать интерфейс для указания клиентскому коду, что ваш класс может быть доступен по индексу типа TKey
, наиболее близким соответствием (которое мне известно) является IDictionary<TKey, TValue>
.
К сожалению, IDictionary<TKey, TValue>
имеет целую группу членов, которые нарушают ваше требование только для чтения, что означает, что вам придется явно реализовывать множество членов только для того, чтобы выдать NotImplementedException
(или что-то подобное), когда они вызываются: а именно, установщик для this
, Add
, Clear
и Remove
.
Может быть, есть другой интерфейс, который более подходит для этой цели (что-то вроде IReadOnlyDictionary<TKey, TValue>
?); Я просто не сталкивался с этим.
Вы также можете написать свой собственный интерфейс, конечно, если вы хотите иметь несколько классов, которые предлагают функциональность, аналогичную этой.