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# 6.0 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.