1
resposta

[Dúvida] Protected, internal

Fiquei com dúvida entre quando utilizar o protected internal, o protected, o internal sozinho e o internal abstract, se alguém puder me ajudar.(se puderem falar de forma mais simples de entender ajuda tbm kk)

1 resposta

Olá, Guilherme! Como vai?

Entender os modificadores de acesso em C# pode realmente ser um pouco confuso no início, mas vou tentar explicar de uma forma mais simples.

  1. Protected: Quando você utiliza protected, isso significa que o membro (como um método ou propriedade) pode ser acessado dentro da própria classe e por qualquer classe que herde dela (ou seja, as subclasses).

  2. Internal: O modificador internal permite que o membro seja acessado apenas dentro do mesmo assembly (ou seja, dentro do mesmo projeto ou biblioteca). Isso é útil quando você deseja que algo seja acessível por várias classes dentro do mesmo projeto, mas não por classes de outros projetos.

  3. Protected Internal: Essa combinação permite que o membro seja acessado tanto por subclasses (como protected) quanto por qualquer classe dentro do mesmo assembly (como internal). É uma espécie de combinação dos dois mundos.

  4. Internal Abstract: Quando você vê internal abstract, isso geralmente se refere a classes ou métodos dentro de classes abstratas. O internal aqui indica que a classe ou método pode ser acessado apenas dentro do mesmo assembly, enquanto abstract significa que a classe ou método deve ser implementado por uma classe derivada.

Um exemplo prático: imagine que você está desenvolvendo uma biblioteca para um banco. As classes que lidam com transações internas podem ser internal, pois você não quer que sejam acessíveis fora do projeto. Métodos que precisam ser personalizados por diferentes tipos de contas podem ser protected, permitindo que subclasses de contas personalizem o comportamento. Se uma funcionalidade precisa ser compartilhada entre diferentes tipos de contas dentro do mesmo projeto, mas também precisa ser personalizada, protected internal pode ser a escolha certa.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.