O C#, assim como várias outras linguagens orientadas a objetos, possui vários modificadores de acesso que são utilizados para definir a visibilidade de propriedades e métodos dentro do programa.
Além dos já conhecidos private, protected, public e internal, a versão 7.2 da linguagem trouxe uma nova opção: o private protected. Esse modificador define que uma propriedade ou método pode ser acessado apenas por classes filhas dentro do mesmo assembly. Ou seja, se criarmos uma classe B no assembly B herdando da classe A no assembly A, não teremos acesso aos campos private protected.
Para entender isso melhor, vejamos um exemplo.
Veja na imagem abaixo uma solution com dois projetos, cada um contendo uma classe (pai e filha em assemblies diferentes).
A seguir, na imagem abaixo você pode ver a estrutura da ClasseBase1, que contém um campo private protected:
Agora, por mais que a ClasseFilha1, localizada em outro projeto, herde da ClasseBase1, ela não terá acesso à Propriedade2, pois estão em assemblies diferentes:
Esse novo modificador é interessante, por exemplo, quando você está construindo uma biblioteca de classes para um fim específico e precisa que certas classes herdem de outra para aproveitar algumas de suas propriedades, mas não quer que essas propriedades sejam expostas para qualquer um que herdar dessa classe base.
Como desenvolvedores .NET, é importante que estejamos sempre nos atualizando e conhecendo os novos recursos da linguagem e do framework.
E aí, o que achou? Deixe seu comentário e até a próxima.