Supongamos que está desarrollando Microsoft .NET Framework para que lo usen otros desarrolladores (que en realidad es un "proyecto del mundo real"). Necesita escribir una clase que actúe como una matriz pero que permita cambiar el tamaño dinámicamente (la clase List<T>
). Sin un controlador paso a paso, se podría escribir dos métodos para obtener y establecer elementos:
public T get(int index) { ... }
public void set(int index, T value) { ... }
// (Java advocates: no offense intended)
asumir un usuario de la biblioteca quiere incrementar el segundo elemento. Ella tendrá que escribir:
list.set(1, list.get(1) + 1);
Con un indexador, la sintaxis es mucho más simple, más fácil de leer y más fácil de entender:
list[1]++;
(argumentos similares se aplican a cosas como Dictionary<TKey,TValue>
...)