Индексатор в C# отличается от стандартных свойств тем, что позволяет индексировать объекты и обращаться к данным по индексу. 14 Фактически с помощью индексаторов можно работать с объектами как с массивами. 1
Некоторые другие отличия:
- Свойства объявляются путём присвоения уникального имени, а индексаторы — без указания имени. 3
- Свойства идентифицируются по именам, а индексаторы — по подписям. 3
- Свойства могут быть объявлены как статический элемент или элемент экземпляра, а индексаторы всегда объявляются как элемент экземпляра. 3
- Свойства вызываются через описанное имя, а индексаторы — с использованием индекса созданного объекта. 3
- Метод доступа get свойства не имеет параметров, а метод доступа get индексатора имеет тот же список формальных параметров, что и сам индексатор. 5
- Метод доступа set свойства содержит неявный параметр value, а метод доступа set индексатора имеет тот же список формальных параметров, что и сам индексатор, и также должен содержать параметр value. 5