14 Generische Bausteine

Manchmal möchte man eine Klasse oder eine Methode so allgemein halten, dass sie mit Objekten verschiedener Typen arbeiten kann. Das kann man zum Beispiel erreichen, indem man als Typ dieser Objekte die oberste Basisklasse object wählt, zu der alle anderen Typen kompatibel sind. Folgende Klasse zeigt als Beispiel einen Puffer, in dem man beliebige Daten speichern kann:

class Buffer {   private object[] data = ...;   public void Put(object x) {...}   public object Get() {...}}

In diesem Puffer können nun Zahlen, Strings oder beliebige andere Objekte abgelegt werden, z.B.:

Buffer buf = new Buffer();buf.Put(3);buf.Put("a string");buf.Put(new Person());

Diese Implementierung führt allerdings zu folgenden Problemen:

1. Übergibt ...

Get Kompaktkurs C# 4.0, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.