das ist meine erste Frage hier, also hoffe ich, dass ich es gut artikulieren kann und hoffentlich wird es nicht zu umständlich einfach sein.
Ich habe die folgende Klasse SubSim welche Sim erweitert, was MainSim erweitert. In einer vollständig separaten Klasse (und auch Bibliothek) muss ich prüfen, ob ein Objekt, das durchgelassen wird, ein Typ von MainSim ist. So ist Folgendes zu überprüfen:
%Vor%Offensichtlich t.BaseType wird Sim zurückgegeben, da Type.BaseType den Typ erhält, von dem der aktuelle Typ direkt erbt.
Wenn Sie t.BaseType.BaseType nicht benötigen, um MainSub zu erhalten, gibt es eine andere Möglichkeit, den richtigen Typ mit .NET-Bibliotheken zu erhalten? Oder gibt es Überschreibungen, die neu definiert werden können, um die Hauptklasse zurückzugeben?
Vielen Dank im Voraus
Es gibt vier verwandte Standardmethoden:
%Vor%Sie können auch eine rekursive Methode erstellen:
%Vor%ist alles was du brauchst. "ist" sucht den Vererbungsbaum ab.
Die Option 'ist' funktionierte nicht für mich. Es gab mir die Warnung; "Der gegebene Ausdruck ist niemals vom bereitgestellten ('MainSim') Typ", ich glaube jedoch, dass die Warnung mehr mit dem Rahmen, den wir haben, zu tun hat. Meine Lösung endete damit:
%Vor%Nicht so sauber, wie ich es mir erhofft hatte, oder so direkt wie deine Antworten schienen. Trotzdem, vielen Dank für Ihre Antworten. Die Einfachheit von ihnen macht mir klar, dass ich viel zu lernen habe.
Tags und Links c#