Какой эффект имеет ключевое слово «new» в C # и почему это только предупреждение, когда оно не используется?

Рассмотрим следующий код:

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

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

Это создаст следующее предупреждение:

Test2.Data» скрывает унаследованный членTest1.Data», Используйте новое ключевое слово, если скрытие было предназначено.

Почему это только предупреждение и какой эффект добавит "новый» ключевое слово есть?

Согласно моим испытаниям, я не могу найти никакой разницыновый» Ключевое слово добавлено.

Дон»не поймите меня неправильно, яЯ все за то, чтобы быть явным, но мне было любопытно, как в пользу добавления "новый».

Мои единственные мысли о том, что это может быть:

Улучшенная читабельностьНекоторое сохранение во время выполнения, когда компилятор нет, чтобы выяснить неизбежное в долгий путь

Ответы на вопрос(4)

Ваш ответ на вопрос