Frage

Dies ist mit C # und .net 3.5

Lassen Sie uns sagen, ich habe die folgende Methode:

myMethod(myBaseClass mbc)

In meinem Projekt, alle folgenden Klassen erben von MyBaseClass.

ot1:myBaseClass
ot2:myBaseClass
ot3:myBaseClass
ot4:myBaseClass

Gibt es irgendwelche Tricks, die mir myMethod mit ot1 und OT3 verwenden lassen, aber NICHT ot2 und OT4, oder muss ich im Grunde für jeden Typ überlasten ich zulassen?

War es hilfreich?

Lösung

Eine Schnittstelle. Ändern Sie Ihre Methodensignatur

myMethod(ICastableAsMyBaseClass mbc)

Dann ot1 haben und OT3 ICastableAsMyBaseClass implementieren.

Andere Tipps

Sie können die Klasse der MBC zur Laufzeit überprüfen, aber offensichtlich, dass würden Sie nicht mit der falschen Zeit zum Zeitpunkt der Kompilierung von Aufruf die Methode verhindern.

Wenn Sie Compiler-Typprüfung Sie die Methode für jede Art Überlastung müssen Sie zulassen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top