Welchen Effekt hat das "neue" Schlüsselwort in C # und warum ist es nur eine Warnung, wenn es nicht verwendet wird?

Betrachten Sie den folgenden Code:

public abstract class Test1
{
    public object Data { get; set; }
}

public abstract class Test2<T> : Test1
{
    public T Data { get; set; }
}

Dies erzeugt die folgende Warnung:

'Test2.Data' verbirgt das geerbte Mitglied 'Test1.Data'. Verwenden Sie das neue Schlüsselwort, wenn das Ausblenden beabsichtigt war.

Warum ist dies nur eine Warnung und welche Auswirkung hat das Hinzufügen des "neuen" Schlüsselworts?

Meinem Test zufolge kann ich keinen Unterschied feststellen, wenn das Schlüsselwort "new" hinzugefügt wird.

Versteh mich nicht falsch, ich bin alles dafür, explizit zu sein, aber ich war neugierig auf den Nutzen des Hinzufügens von "neu".

Meine einzigen Gedanken, was es sein könnte, sind:

Verbesserte LesbarkeitEtwas Zeitersparnis zur Laufzeit, wenn der Compiler nicht das Unvermeidliche herausfinden muss

Antworten auf die Frage(4)

Ihre Antwort auf die Frage