1
resposta

Propriedades Get e Set - Campos readonly

Duas formas de implementar campos readonly 1) private readonly int _numero; public int Numero { get { return _numero; } }

2)public int Numero{get;}

Nas duas implementação é executado um set por debaixo dos panos? Quando eu devo optar pela primeira?

1 resposta

Olá, tudo bem?

O primeiro exemplo private readonly int numero; deve ser usado quando precisamos definir uma variável, dentro de um controlador ou serviço, com um valor predefinido e que nao poderá ser alterado em tempo de execução. Exemplo: uma string que armazena informações de conexão com um banco de dados. Se o valor da variável fosse alterado, todo o serviço falharia, pois haveria um erro na conexão com o banco.

O segundo exemplo public int Numero { get; } deve ser usado quando temos uma propriedade, dentro de uma classe, que não poderá ser alterada em tempo de execução. Essas propriedades identificam o objeto instanciado. Um exemplo seria um Id de objeto ou o CPF de uma pessoa. Se estes valores fossem alterados em tempo de execucao, nao representariam mais aquele objeto, entende? O novo valor de CPF poderia apontar pra outra pessoa ou um objeto inválido.