Entwickler-Ecke
Basistechnologien - Liste selbst bauen
Oliver M. - Fr 08.07.11 20:40
Titel: Liste selbst bauen
Hallo,
ich möchte eine besondere Liste haben, die eigentlich so funktioniert wie die List<T>-Klasse, aber brächte ich eine kleine Änderung in der Add-Methode. Kein Problem: Ich vererbe die List<T>-Klasse! Kleiner Hacken: Die List<T>-Klasse kann man nicht vererben. Also, habt ihr eine Idee zur Lösung des Problems?
MfG Oliver
Ralf Jansen - Fr 08.07.11 20:50
Wenn du eine Liste mit einen speziellen Verhalten brauchst leitet man üblicherweise von Collection<T> oder einem seiner Nachfahren (wie z.B. ObservableCollection<T>) ab. Um das Einfügeverhalten zuändern würde man dann aber InsertItem überschreiben das von Allen Einfügeoperation benutzt wird und nicht nur von Add.
Was soll diese Liste den in Add machen? Wenn du uns das verrätst können wir dir vermutlich die passende Basiscollection nennen oder eine Listen Klasse die genau das was du brauchst bereitst tut.
Oliver M. - Fr 08.07.11 21:58
Hallo,
danke für den Tip mit Collection<T> (ObservableCollection<T> habe ich nicht gefunden) aber das ist nicht gans was ich brauche, ich brauche nämlich eine Überschreibung der Add-Methode.
Warum? Das ist gans einfach oder auch nicht: ich habe eine öffentliche Klasse (public class RegKey), von der allerdings nur intern eine neue Instans erstellt werden kann ((internal) RegKey(parameter, parameter);). Wenn ich meiner Listen-Klasse (KeyList soll sie heißen) allerdings von außen ein neues RegKey-Element hinzufügen möchte, kann ich ja keine neue Instans dieser RegKey Klasse machen, weil das ja nur intern geht, alse muss ich folgendes machen: Add(parameter, parameter), die neue Instans wird also intern erstellt. Aber das ist irgendwie nicht so einfach...
Ich hoffe mir ist noch zu helfen,
Oliver
Ralf Jansen - Fr 08.07.11 22:35
Wenn ich doch verstehe brauchst du einfach eine andere Methode die zufällig auch Add heißt? Überschreiben ist was anderes.
In dem Fall sehe ich nicht dein Problem. Einfach von List<RegKey> ableiten eine neue Add Methode mit den von dir gewünschten Parametern implementieren in dieser Methode eine RegKey Instanz erzeugen und die eigentlich geerbte Add Methode aufrufen.
Oliver M. - Sa 09.07.11 09:26
Danke für die Antwort, aber das habe ich selber schon versucht, doch die List<T>-Klasse kann man leider nicht ableiten :cry:.
Ich hoffe wir kriegen das hin,
Oliver
Th69 - Sa 09.07.11 11:19
Hallo Oliver,
klar kann man von List<T> ableiten:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| class KeyList : List<RegKey> { public void Add(string par1, string par2) { RegKey regkey = new RegKey(par1, par2);
Add(regkey); } } |
Oliver M. - Sa 09.07.11 13:37
Hey, Danke! Ich war mir sicher ich hätte das mit der Vererbung schon ausprobiert und es hätte nicht geklapt, aber es klappt! :beer:
Danke,
Oliver
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!