Não entendi direito usar as propriedades Get e Set
com o atributo definido como Public
faz diferença ?
Caso não faça, então porque usar Private
?
Não entendi direito usar as propriedades Get e Set
com o atributo definido como Public
faz diferença ?
Caso não faça, então porque usar Private
?
Vamos imaginar uma classe com uma propriedade:
public class Exemplo
{
public int PropriedadeExemplo { get; set;}
}
Neste exemplo a propriedade "PropriedadeExemplo" foi declarada como publica e pode ser acessada por outras classes no nosso sistema e, como os métodos "get" e "set" não tem nenhuma declaração, fica implícito que eles também são públicos, ou seja, as outras classes do seu sistema podem recuperar a informação e alterar a informação desta propriedade.
Quando você define os metodos get ou set da propriedade como privados, você esta dizendo que apenas a própria classe pode alterar ou recuperar a informação da propriedade, ou seja, as outras classes terão acesso a propriedade mas não poderão alterar ou recuperar a informação.
Exemplo:
Outras classes podem recuperar a informação que esta na propriedade mas NÃO podem alterar:
public class Exemplo
{
public int PropriedadeExemplo { get; private set;}
}
Outras classes NÃO podem recuperar a informação que esta na propriedade mas podem alterar:
public class Exemplo
{
public int PropriedadeExemplo { private get; set;}
}
Para finalizar os níveis de acesso que você pode dar para uma classe, método ou propriedade são:
public: o acesso não é restrito.
protected: o acesso é limitado à classe que os contém ou aos tipos derivados da classe que os contém.
Internal: o acesso é limitado ao assembly atual.
protegido interno: o acesso é limitado ao assembly atual ou aos tipos derivados da classe que os contém.
private: o acesso é limitado ao tipo recipiente.
Mais Informações:
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/access-modifiers