Ну, во первых, это варнинг про то что один метод "закрывает" другой метод своим именем.
Идём в настройки проекта и
ставим:
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
По дефолту в каждом новом проекте оно должно быть true т.к. все варнинги С# (даже по документации) это ошибки разработчиков.
По проблеме: способов запретить перекрытие имён нет. Можно написать аналитику Roslyn на нахождение таких перекрытий, можно в рантайме чекнуть что в потомке нет такого же метода.