Ich bin derzeit verwirrt von C#.C# -Aufruffunktion basierend auf Untertyp des Objekts
Ich habe eine Reihe von Klassen, sagen A, B und C, die alle aus der Klasse "Parent" stammen. Ich habe eine Funktion, die ein Argument des Typs Parent annimmt, und abhängig davon, mit welcher Kindklasse das Objekt, mit dem es aufgerufen wird, ist, möchte ich, dass es eine andere Methode aufruft.
Derzeit denke ich mit einem Wörterbuch Mapping-Typen zu Delegierten, aber das scheint albern, obwohl es ist alles, was ich im Moment kommen kann.
Das Problem ist, dass, wenn ich in der Funktion bin, ich nur weiß, dass es vom Typ Parent ist, und ich kann GetType verwenden, um zu bekommen, welche Kindklasse ich habe, die das Wörterbuch erlauben würde. Sonst würde ich wahrscheinlich Funktionsüberladung verwenden.
Wirklich Typcasting scheint wie die beste Methode, so dass ich Funktion Überladung verwenden kann, die viel weniger wortreich wäre, aber ich weiß nicht, wie ich es tun könnte oder ob es überhaupt funktionieren würde.
Irgendwelche Empfehlungen?
Leider habe ich keine Kontrolle über die Objekte in Frage, so dass ich Methoden zu ihnen hinzufügen kann. Wahrscheinlich wäre das der richtige Weg. Ich schaute in das Dictionary der Delegierten, aber es lässt eine Menge Boilerplate Typ Umwandlung Code. Also habe ich eine Frage zum Aufruf überladener Funktionen mit Typecasting Generics gestellt. – AlexH