hi,
ich möchte gerne über eine funktion (sei es selbst geschrieben oder am besten noch eine funktion aus der .net-bibliothek) alle erbenden klassen einer vorgegebenen klasse herausfinden.
hintergrund:
über eine klasse 'PuzzleCreator' möchte ich alle objekte instanziieren, die von klasse 'Puzzle' erben. natürlich könnte ich hardcoded über eine arraylist z.b. alle klassennamen festhalten, die von klasse 'Puzzle' erben. aber eben das möchte ich nicht. wenn weitere klassen davon erben, möchte ich diese arraylist in klasse 'PuzzleCreator' nicht ändern müssen. das ganze soll dynamisch erfolgen, "closed to modification" wie es so schön heißt.![Blinzeln](https://entwickler-forum.de/core/images/smilies/wink.png)
da jede erbende klasse in der klassensignatur 'Inherits Puzzle' drin stehen hat, dachte ich mir, wäre das über die schiene viell. möglich. aber alle klassen durchzugehen und den code nach diesen beiden wörtern zu parsen ist von effizienter und eleganter programmierung ja weit entfernt.
jemand eine idee? bräuchte ne lösung so schnell wie möglich.
danke schonmal im voraus für die mühe!
maverick39
UPDATE:
jetzt ist mir eingefallen, dass mir dann noch ein stein im weg liegt, sobald ich diese liste habe.
wenn ich dann sage ...
For i As Integer = 0 To (puzzleList.Count - 1)
puzzle = New puzzleList.Item(i)
...
Next
... funktioniert das natürlich nicht. geht sowas überhaupt? also die zu instanziierende klasse aus einer variablen auslesen? wenn nicht, was wäre ein workaround?
ich möchte gerne über eine funktion (sei es selbst geschrieben oder am besten noch eine funktion aus der .net-bibliothek) alle erbenden klassen einer vorgegebenen klasse herausfinden.
hintergrund:
über eine klasse 'PuzzleCreator' möchte ich alle objekte instanziieren, die von klasse 'Puzzle' erben. natürlich könnte ich hardcoded über eine arraylist z.b. alle klassennamen festhalten, die von klasse 'Puzzle' erben. aber eben das möchte ich nicht. wenn weitere klassen davon erben, möchte ich diese arraylist in klasse 'PuzzleCreator' nicht ändern müssen. das ganze soll dynamisch erfolgen, "closed to modification" wie es so schön heißt.
![Blinzeln](https://entwickler-forum.de/core/images/smilies/wink.png)
da jede erbende klasse in der klassensignatur 'Inherits Puzzle' drin stehen hat, dachte ich mir, wäre das über die schiene viell. möglich. aber alle klassen durchzugehen und den code nach diesen beiden wörtern zu parsen ist von effizienter und eleganter programmierung ja weit entfernt.
jemand eine idee? bräuchte ne lösung so schnell wie möglich.
danke schonmal im voraus für die mühe!
maverick39
UPDATE:
jetzt ist mir eingefallen, dass mir dann noch ein stein im weg liegt, sobald ich diese liste habe.
wenn ich dann sage ...
For i As Integer = 0 To (puzzleList.Count - 1)
puzzle = New puzzleList.Item(i)
...
Next
... funktioniert das natürlich nicht. geht sowas überhaupt? also die zu instanziierende klasse aus einer variablen auslesen? wenn nicht, was wäre ein workaround?
Comment