Нет - вы не можете писать именованные индекеры в C #. Начиная с C # 4, вы можете использовать их для COM-объектов, но вы не можете их записать.
Как вы уже заметили, foo.Bars[index]
будет делать то, что вы хотите, в любом случае ... этот ответ был в основном для будущих читателей.
Чтобы разработать: подвергая свойство Bars
некоторого типа, у которого есть индекс, достигается то, что вы хотите, но вы должны рассмотреть, как его разоблачить:
- Вы хотите, чтобы вызывающие абоненты могли заменить коллекцию другой коллекцией? (Если нет, сделайте это свойство только для чтения.)
- Вы хотите, чтобы вызывающие абоненты могли изменять коллекцию? Если да, то как? Просто заменять элементы или добавлять / удалять их? Вам нужен какой-то контроль над этим? Ответы на эти вопросы будут определять тип, который вы хотите открыть, - потенциально доступная только для чтения коллекция или пользовательская коллекция с дополнительной проверкой.
задан Hugo Nakamura 25 February 2015 в 09:59
поделиться