After completing this chapter, you will be able to:
Encapsulate logical arraylike access to an object by using indexers.
Control read access to indexers by declaring get accessors.
Control write access to indexers by declaring set accessors.
Create interfaces that declare indexers.
Implement indexers in structures and classes that inherit from interfaces.
The preceding chapter described how to implement and use properties as a means of providing controlled access to the fields in a class. Properties are useful for mirroring fields that contain a single value. However, indexers are invaluable if you want to provide access to items that contain multiple values by using a natural and familiar syntax.
An indexer ...