1
resposta

Sobre o "internal protected"

Dentro do mesmo projeto eu devo continuar utilizando o "internal protected", no momento que eu passo para outro projeto, utilizo somente o protected. Seria esta a ideia?

A ordem do modificador de acesso na linha de comando influencia na compilação do código?

1 resposta

Nicolas, a ordem dos modificadores nesse caso não influenciam o comportamento.

No caso do "protected internal", você está definindo que o membro assinalado com esse modificador poderá ser acessado somente no mesmo projeto (assembly) e pelos filhos dessa classe seja dentro do mesmo assembly ou fora dele.

Tente fazer um exemplo assim:

Crie dois projetos (Projeto1.csproj e Projeto2.csproj). Depois crie uma classe em casa um dos projetos (Projeto1.Classe1 e Projeto2.Classe2). Crie um método Teste1() como protected internal na Projeto1.Classe1.

Na Projeto2.Classe2 crie um método Teste2() e neste método instâncie a Classe1 e veja que o método Teste1 não aparece na lista para ser usado (por estar declarado como internal)

Agora faça a classe Projeto2.Classe2 herdar de Projeto1.Classe1, no método Teste2() você vai perceber que poderá chamar o método base.Teste1()

Não se esqueça de adicionar a referencia do Projeto1 em Projeto2.

A documentação oficial te ajuda a entender melhor: https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

Obriago