Предупреждение CS0108 срабатывает, когда переменная объявлена с тем же именем, что и переменная в базовом классе.
Предупреждение CS0114 является эквивалентом для методов.
Оба помечаются как предупреждение, но не как ошибка,Компиляция продолжается, и исполняемый файл может быть запущен.
Но существует риск логической ошибки или ошибки, когда вызывается неправильная ошибка.
Это чрезвычайно опасно в реальных производственных средах.
Это также очень "неочевидно" при отладке: код выглядит так, как будто он делает правильные вещи, когда проходит, но это не так. Ошибка может длиться вечно, чтобы идентифицировать в сильно абстрагированных / унаследованных кодовых базах.
Конечно, ключевое слово «new» существует по причине, и (еще более точно) использование должно быть вызвано ошибкой компиляции -не просто предупреждение.
Но это не так. Вы должны настроить его вручную для каждого проекта в решении;даже невозможно обеспечить применение решения в целом.
И я пока не нашел способа сделать это поведением по умолчанию для новых решений.
Почему?