BaseType eines Basistyps

9

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

    
Emmanuel F 21.10.2008, 14:21
quelle

5 Antworten

18

Es gibt vier verwandte Standardmethoden:

%Vor%

Sie können auch eine rekursive Methode erstellen:

%Vor%     
Mark Cidade 21.10.2008, 14:23
quelle
10
%Vor%

ist alles was du brauchst. "ist" sucht den Vererbungsbaum ab.

    
James Curran 21.10.2008 14:22
quelle
1

Verwenden Sie das is -Schlüsselwort :

%Vor%     
matt b 21.10.2008 14:23
quelle
1

Wie steht es mit "ist"?

Ссылка

    
mspmsp 21.10.2008 14:24
quelle
1

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.

    
Emmanuel F 21.10.2008 15:09
quelle

Tags und Links