Un collega e io stavamo esaminando il comportamento della new
parola chiave in C # in quanto si applica al concetto di nascondersi. Dalla documentazione :
Utilizzare il nuovo modificatore per nascondere esplicitamente un membro ereditato da una classe base. Per nascondere un membro ereditato, dichiararlo nella classe derivata usando lo stesso nome e modificarlo con il nuovo modificatore.
Abbiamo letto la documentazione e capiamo cosa fa sostanzialmente e come lo fa. Ciò su cui non siamo riusciti a capire è perché dovresti farlo in primo luogo. Il modificatore è stato lì dal 2003, e abbiamo entrambi lavorato con .Net per un periodo più lungo di quello e non è mai arrivato.
Quando questo comportamento sarebbe necessario in senso pratico (ad es. Come applicato a un caso aziendale)? È questa una caratteristica che è sopravvissuta alla sua utilità o è ciò che fa semplicemente abbastanza inusuale in quello che facciamo (in particolare facciamo moduli web e applicazioni MVC e alcuni WinForms e WPF a fattore ridotto)? Nel provare questa parola chiave e giocarci abbiamo trovato alcuni comportamenti che permettono che sembrino un po 'pericolosi se usati in modo improprio.
Sembra un po 'aperto, ma stiamo cercando un caso d'uso specifico che può essere applicato a un'applicazione aziendale che trova utile questo particolare strumento.