Na dole ekranu wyświetla się ostrzeżenie:
Ostrzeżenie 1 „WindowsFormsApplication2.EventControlDataSet.Events” ukrywa dziedziczony element członkowski „System.ComponentModel.MarshalByValueComponent.Events”. Użyj nowego słowa kluczowego, jeśli ukrywanie było zamierzone. C: \ Users \ myComputer \ Desktop \ Event Control \ WindowsFormsApplication2 \ EventControlDataSet.Designer.cs 112 32 eventControl
Jeśli kliknę dwukrotnie, pojawi się:
public EventsDataTable Events {
get {
return this.tableEvents;
}
Czy ktoś może mi powiedzieć, jak się tego pozbyć?
new
kluczowe pozbyłoby się błędu kompilacji, ale może wprowadzić inne niezamierzone zachowanie. Myślę, że powinieneś dodać ostrzeżenie do swojej odpowiedzi. Byłoby to pomocne w zrozumieniu konsekwencji dodawanianew
.@wdavo jest poprawne. To samo dotyczy funkcji.
Jeśli nadpisujesz funkcję podstawową, taką jak Aktualizacja, w swojej podklasie potrzebujesz:
Bez nowego na początku dekleracji funkcji otrzymasz flagę ostrzegawczą.
źródło
W poniższym kodzie
Class A
implementuje interfejsIShow
i implementuje jego metodęShowData
.Class B
dziedziczyClass A
. Aby skorzystać zShowData
metody wClass B
, musimy użyć słowa kluczowegonew
wShowData
metodzie, aby ukryćClass A
metodę klasy bazowej i użyćoverride
słowa kluczowego w celu rozszerzenia metody.źródło
override
twoim przykładzie nie ma z twojego wyjaśnienia ioverride
nie jest potrzebne.Funkcja nadrzędna potrzebuje
virtual
słowa kluczowego, a funkcja potomna potrzebujeoverride
słowa kluczowego przed definicją funkcji.źródło