Hallo Forum
Kann ich eine Hashtable direkt mit Werten instanzieren?
Der Hintergrund; ich habe eine Methode, die will eine Hashtable als Übergabewert. Diese Hashtable hat in einigen "Sonderfällen" nur einen Eintrag. Es lohnt sich also fast nicht zwei Zeilen code mit einer Variable zu machen:
Hashtable tmpTable = new Hashtable();
tmpTable.Add("Key", "Value");
MyMethod(tmpTable);
Wie kann ich den Code grösstmöglich kürzen?
MyMethod(new Hashtable().Add("Key", "Value"))
geht nicht...
Geht
new HashTable(){ new KeyValuePair("Key", "Value"); }
unter .net 2.0 schon oder erst bei 3.0/3.5?
Original von kaepten
MyMethod(new Hashtable().Add("Key", "Value"))
geht nicht...
Das kann ja auch nicht gehen... MyMethod erwartet eine Hashtable als Übergabewert und du übergibst ihm den Rückgabewert (ist void) vom Aufruf Add der temporär erzeugten Hashtable...
Davon ab, warum willst du das machen? Dadurch wird dein Code schwerer lesbar und ich denke nicht das es Einfluss auf die Performance hat.
Hallo CaptainIglo,
unter .net 2.0 schon oder erst bei 3.0/3.5?
ich denke erst ab .NET 3.5, sprich ab C# 3.0. Vorher wird das nicht gehen.
Hallo kaepten,
du könntest eine eigene Klasse schreiben, die von Hashtable erbt und nur einen zusätzlichen Konstruktor anbietet. Ohne eine solche Klasse sehe ich kein Potential, den Code zu verkürzen.
herbivore
Original von herbivore
ich denke erst ab .NET 3.5, sprich ab C# 3.0. Vorher wird das nicht gehen.
War mir eben nicht mehr sicher, denn ich hab das auf einer C# 3.0 Schulung gesehen und wusste nicht mehr sicher ob dass jetzt ein neues Feature oder ein altes war...