Спецификация языка С# говорит, что если я наследую класс, а базовый класс и производный класс имеют одинаковый именованный элемент с той же сигнатурой, тогда я должен использовать ключевое слово new
, чтобы скрыть элемент базового класса (там это другой способ, используя ключевое слово virtual и override в базовом и производном классе).
Но на практике я обнаружил, что производный класс auto скрывает производный член, если он имеет тот же самый именованный элемент. Итак, каково основное преимущество и проблема нового ключевого слова в том же именованном члене класса?