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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?
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.