Hallo,
für den Pseudo-Code kannst die Methoden überladen, da der Typ zur Kompilierzeit bekannt ist:
C#-Quelltext
1: 2: 3:
| class A { } class B : A { } class C : A { } |
und dann...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| static void Method(A baseClass) { Console.WriteLine("Class A"); }
static void Method(B bClass) { Console.WriteLine("Class B"); }
static void Method(C cClass) { Console.WriteLine("Class C"); } |
Wenn du was dynamisches hast (was mehr Sinn macht) gibt es die Möglichkeit ein Visitor-Pattern zu implementieren. Dabei wird der Typ aufgelöst und die entsprechende Methode aufgerufen. Kommt halt drauf an, ob/wieviel du an den Klassen verändern kannst. Wenn du vollen Zugriff hast dann solltest du das Interface erweitern bzw. eines einführen.
Gruß
Edit/PS: Alternativ gibt es natürlich noch weitere unschöne Möglichkeit wie Reflection bzw. dynamic.