Angenommen, ich habe den folgenden Code:
class Parent
{
static string MyField = "ParentField";
public virtual string DoSomething()
{
return MyField;
}
}
class Child : Parent
{
static new string MyField = "ChildField";
}
Jetzt möchte ich beides tun können:
Console.WriteLine(Parent.MyField);
Console.WriteLine(Child.MyField);
Diese funktionieren wie erwartet, aber ich möchte auch dies tun:
Child c = new Child();
Console.WriteLine(c.DoSomething());
Da DoSomething() für die Child-Klasse nicht definiert ist, wird das MyField der Parent-Klasse zurückgegeben, aber was ich will, ist das MyField der Child-Klasse.
Meine Frage lautet also: Gibt es eine Möglichkeit, wie ich das machen kann?
HINWEIS: Das Überschreiben der Methode in der Child-Klasse ist eine Option, aber da ich viele Child-Klassen haben werde, die von der Parent-Klasse erben, und die Methode in allen das Gleiche tun soll, würde eine Änderung in dieser Methode eine Menge Ärger mit sich bringen.