Какой эффект имеет ключевое слово «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», Используйте новое ключевое слово, если скрытие было предназначено.
Почему это только предупреждение и какой эффект добавит "новый» ключевое слово есть?
Согласно моим испытаниям, я не могу найти никакой разницыновый» Ключевое слово добавлено.
Дон»не поймите меня неправильно, яЯ все за то, чтобы быть явным, но мне было любопытно, как в пользу добавления "новый».
Мои единственные мысли о том, что это может быть:
Улучшенная читабельностьНекоторое сохранение во время выполнения, когда компилятор нет, чтобы выяснить неизбежное в долгий путь