Boa tarde, professor.
Será que poderia falar um pouco mais sobre a convenção de quando devo usar a propriedade e quando devo usar método?
Boa tarde, professor.
Será que poderia falar um pouco mais sobre a convenção de quando devo usar a propriedade e quando devo usar método?
Olá, Thiago. Tudo bom?
Não existe uma convenção propriamente dito, mas, existe um guia para decidir isto. No site da Microsoft tem um artigo sobre estes guidelines aqui:(https://msdn.microsoft.com/en-us/library/ms229054(v=vs.100).aspx.
Em resumo, escolhemos método quando a operação:
O que você acha?
Abs e bons estudos
Poderia falar mais sobre esse "retorna uma cópia do seu estado interno"? Teria um exemplo disso?
Estamos criando um objeto qualquer, como por exemplo, um objeto do tipo Carro:
Carro c = new Carro();
c.Cor = "Prata";
c.Placa = "cvss-23729";
c.Marca = "Tesla";
c.Modelo = "Model S";
E precisamos de outro objeto muitíssimo semelhante, mas, trocando apenas a Cor para "Vermelho". Seremos obrigados a duplicar todo o código:
Carro c2 = new Carro();
c2.Cor = "Vermelho";
c2.Placa = "cvss-23729";
c2.Marca = "Tesla";
c2.Modelo = "Model S";
Ou podemos criar um método em Carro que retorna seu estado interno, como um Clonar. E nosso código ficaria:
Carro c = new Carro();
c.Cor = "Prata";
c.Placa = "cvss-23729";
c.Marca = "Tesla";
c.Modelo = "Model S";
Carro c2 = c.Clonar();
c2.Cor = "Vermelho";
A implementação do método Clonar, na classe Carro, seria algo como:
public Carro Clonar()
{
Carro clone = new Carro();
clone.Cor = this.Cor;
clone.Placa = this.Placa;
clone.Marca = this.Marca;
clone.Modelo = this.Modelo;
return clone;
}
Lembrando que o uso do
thisnão é obrigatório neste caso. Usei apenas para reforçar queCloneé um método emCarro.
O que você acha?
Abs e bons estudos.