Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

.Net 2.0 - Wichtiger Unterschied bei der Implementierung von Collections

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.

Comments are closed