Angenommen, Sie entwickeln Microsoft .NET Framework für andere Entwickler zu verwenden (was ist wirklich ein "real-world-Projekt"). Sie müssen eine Klasse schreiben, die wie ein Array funktioniert, aber die Größenänderung dynamisch unterstützt (die Klasse List<T>
). Ohne einen Indexer, könnte man zwei Methoden schreiben zu bekommen und setzen Elemente:
public T get(int index) { ... }
public void set(int index, T value) { ... }
// (Java advocates: no offense intended)
Angenommen, ein Benutzer Ihrer Bibliothek will das zweite Element erhöhen. Sie wird schreiben müssen:
list.set(1, list.get(1) + 1);
Mit einem Indexer ist die Syntax viel einfacher, lesbarer und leichter zu verstehen:
list[1]++;
(ähnliche Argumente gelten für Dinge wie Dictionary<TKey,TValue>
...)