У меня есть предупреждение внизу экрана:
Предупреждение 1 «WindowsFormsApplication2.EventControlDataSet.Events» скрывает унаследованный член «System.ComponentModel.MarshalByValueComponent.Events». Используйте новое ключевое слово, если предполагалось скрытие. C: \ Users \ myComputer \ Desktop \ Event Control \ WindowsFormsApplication2 \ EventControlDataSet.Designer.cs 112 32 eventControl
Если я дважды щелкну по нему, появится:
public EventsDataTable Events {
get {
return this.tableEvents;
}
Может кто подскажет как от этого избавиться?
new
Ключевое слово будет избавиться от ошибки компиляции, но может ввести другие непреднамеренные поведение. Я думаю, тебе стоит добавить к своему ответу предупреждение. Это было бы полезно для понимания последствий добавленияnew
.@wdavo правильно. То же верно и для функций.
Если вы переопределите базовую функцию, например Update, то в вашем подклассе вам понадобятся:
Без нового в начале отмены функции вы получите флаг предупреждения.
источник
В приведенном ниже коде
Class A
реализует интерфейсIShow
и реализует его методShowData
.Class B
наследуетсяClass A
. Чтобы использоватьShowData
метод вClass B
, мы должны использовать ключевое словоnew
вShowData
методе, чтобы скрыть метод базового класса,Class A
и использоватьoverride
ключевое слово для расширения метода.источник
override
вашем примере из вашего объяснения нет иoverride
не требуется.Родительской функции необходимо
virtual
ключевое слово, а дочерней функции -override
ключевое слово перед определением функции.источник