Eu e um colega de trabalho estávamos analisando o comportamento da new
palavra - chave em C #, conforme ela se aplica ao conceito de ocultação. A partir da documentação :
Use o novo modificador para ocultar explicitamente um membro herdado de uma classe base. Para ocultar um membro herdado, declare-o na classe derivada usando o mesmo nome e modifique-o com o novo modificador.
Lemos a documentação e entendemos o que basicamente faz e como faz. O que realmente não conseguimos entender é por que você precisaria fazê-lo em primeiro lugar. O modificador existe desde 2003, e nós dois trabalhamos com o .Net por mais tempo do que isso e nunca foi lançado.
Quando esse comportamento seria necessário no sentido prático (por exemplo, quando aplicado a um caso de negócios)? Esse é um recurso que sobreviveu à sua utilidade ou é simplesmente incomum o suficiente no que fazemos (especificamente fazemos formulários da Web e aplicativos MVC e alguns pequenos fatores WinForms e WPF)? Ao experimentar esta palavra-chave e brincar com ela, encontramos alguns comportamentos que ela permite que pareçam um pouco perigosos se mal utilizados.
Isso parece um pouco aberto, mas estamos procurando um caso de uso específico que possa ser aplicado a um aplicativo de negócios que considere útil essa ferramenta específica.