Współpracownik i ja przyglądaliśmy się zachowaniu new
słowa kluczowego w języku C #, ponieważ odnosi się ono do koncepcji ukrywania. Z dokumentacji :
Użyj nowego modyfikatora, aby jawnie ukryć element członkowski odziedziczony z klasy podstawowej. Aby ukryć dziedziczony element członkowski, zadeklaruj go w klasie pochodnej, używając tej samej nazwy, i zmodyfikuj go za pomocą nowego modyfikatora.
Przeczytaliśmy dokumentację i rozumiemy, co ona właściwie robi i jak to robi. Tym, na co tak naprawdę nie mogliśmy sobie poradzić, jest powód, dla którego musisz to zrobić. Modyfikator istnieje od 2003 roku i oboje pracujemy z .Net dłużej niż to i nigdy się nie pojawi.
Kiedy takie zachowanie byłoby konieczne w sensie praktycznym (np. W odniesieniu do uzasadnienia biznesowego)? Czy jest to funkcja, która przeżyła swoją przydatność, czy też to, co robi po prostu dość rzadko w tym, co robimy (w szczególności robimy formularze internetowe i aplikacje MVC oraz niektóre małe czynniki WinForms i WPF)? Próbując tego słowa kluczowego i bawiąc się nim, znaleźliśmy pewne zachowania, które pozwalają na to, że wydają się trochę niebezpieczne, jeśli zostaną niewłaściwie użyte.
Wydaje się to nieco otwarte, ale szukamy konkretnego przypadku użycia, który można zastosować w aplikacji biznesowej, która uzna to narzędzie za przydatne.