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.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage