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
this
não é obrigatório neste caso. Usei apenas para reforçar queClone
é um método emCarro
.
O que você acha?
Abs e bons estudos.