.Net 2.0 - Wichtiger Unterschied bei der Implementierung von Collections


Thomas Wölfer
Thomas Wölfer

21. Juli 2005


Bei .Net vor der Version 2.0 gab es keine Generics: Wollte man ein Dictionary-Objekt (Hashtable, Map...), dann verwendete man dafür das ganz normale Hashtable-Objekt.

Bei .Net 2.0 gibt es nun die Generics, die unter anderem den großen Vorteil haben typensicher zu sein. Um eine Hashtable für 'string' auf 'object' anzulegen, geht man einfach wie folgt vor:

Dictionary<string,object> map = new Dictionary<string,object>;

Soweit - so gut. Auf eines muss man aber aufpassen: Die Implementierung von Lookups ist etwas anders als früher. Bisher konnte man in etwa das folgende verwenden:

Hashtable ht = new Hashtable();
ht[ "paul"] = new Person();

Wollte man dann später eine Person rausholen, so ging das wie folgt:

Person p = ht["paul"];
if( p != null) // .... dann hatte man die Person

Bei der Dictionary-Klasse ist das anders: Ist der Key nicht enthalten, dann wird der Zugriff über eckige Klammern eine Exception. Statt dessen gibt es aber eine alternative Funktion zum erfragen anhand des Keys.