> Ich ben�tige eine Hashtable deren Inhalt zur kompletten
> Laufzeit gleich bleibt.
>
> In dieser sind Werte hinterlegt - die ich immer wieder
> ben�tige. Diese �ndern sich zur kompletten Laufzeit nicht!
>
> Wie macht man so was? Weil einmal mu� man ja die Hashtable
> mal initialisieren -und mit den Daten bef�llen? Aber wie kann
> ich die dann als Konstante deklarieren? Geht das �berhaupt,
> oder bin ich absolut auf dem Holzweg?
Erbe von Hashtable eine neue Klasse ReadOnlyHashtable und �berschreibe
* isReadOnly und isFixedSize, damit es true zur�ckgibt
* Add, Clear und Remove, damit es eine NotSupportedException wirft
* Clone wie gleich besprochen.
Jetzt hast Du eine Readonly-HashTable, aber keinen Wert drin.
Kein Problem:
Erzeuge dir nur einen Konstruktor:
public Hashtable(IDictionary d) : base(d) {}
Damit ist es Dir nun m�glich eine normale Hashtable mit Werten zu f�llen:
HashTable ht = new HashTable(),
// mit Werten f�ll...
Und dann die Werte in Deine Hashtable zu �bernehmen:
ReadOnlyHashTable roht = ReadOnlyHashTable(ht);
Die alte Hashtable kannst Du jetzt "wegschmeissen" und nur die
Read-Only-Variante rausgeben.
Jetzt gibt es noch die Clone-Methode zu besprechen. Damit die nicht eine
�nderbare Hashtable erzeugt, musst Du diese auch �berschreiben...
Etwa so muss dann der Code aussehen:
return new ReadOnlyHashTable(this);
Gruss,
Claudius
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net