Zugriff auf eine statische Eigenschaft eines untergeordneten Elements in einer übergeordneten Methode
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 in der Lage sein, beides zu tun:
Console.WriteLine(Parent.MyField);
Console.WriteLine(Child.MyField);
Diese funktionieren wie erwartet, aber ich würde das auch gerne tun:
Child c = new Child();
Console.WriteLine(c.DoSomething());
Da DoSomething () nicht für die Child-Klasse definiert ist, wird das MyField der Eltern zurückgegeben, aber ich möchte das MyField der Kinder.
Meine Frage lautet also: Kann ich das auf irgendeine Weise tun?
ANMERKUNG: Das Überschreiben der Methode in der Child-Klasse ist eine Option, aber da viele Child-Klassen von der Parent-Methode geerbt werden und die Methode in allen dieselbe Aktion ausführen soll, würde eine Änderung dieser Methode eine Menge bewirken Ärger.