Gustavo,
Vou tentar explicar...
Isso funciona para você encapsular a propriedade dentro de uma classe, por exemplo.
public string conta; // variável
public string Conta { get; set; } // propriedade
Em outras palavras, você NÃO pode acessar a variável "conta" sem acessar uma propriedade ou um método "Conta".
O motivo real: - Passar por regras de negócio que podem ser vistas como regras de segurança de acesso fazendo validações, como, por exemplo: - O valor NUNCA pode ficar negativo.
No caso, como é uma "Propriedade Autoimplementada", o objetivo continua sendo restringir a acessibilidade do acessador.
São boas práticas de programação S.O.L.I.D.
NÃO é para deixar alterar mesmo.
Já o SALDO, não está usando uma propriedade, por isso podes er alterado.
Por favor, leia os artigos abaixo:
===============================================================
Propriedades (Guia de Programação em C#)
Artigo - 06/04/2023
Propriedades auto implementadas
public class SaleItem
{
public string Name
{ get; set; }
public decimal Price
{ get; set; }
}
As propriedades implementadas automaticamente podem declarar diferentes acessibilidades para os acessadores get e set. Normalmente, você declara um acessador público get e um acessador privado set. Saiba mais no artigo sobre como restringir a acessibilidade do acessador.
https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/properties
===============================================================
Restringindo a acessibilidade ao acessador (Guia de Programação em C#)
Artigo - 06/04/2023
private string _name = "Hello";
public string Name
{
get
{
return _name;
}
protected set
{
_name = value;
}
}
Neste exemplo, uma propriedade chamada Name define um acessador get e set. O acessador get recebe o nível de acessibilidade da propriedade em si, public nesse caso, embora o set acessador esteja restrito explicitamente ao aplicar o modificador de acesso protegido ao acessador em si.
https://learn.microsoft.com/pt-br/dotnet/csharp/programming-guide/classes-and-structs/restricting-accessor-accessibility
===============================================================
String Classe
Representa o texto como uma sequência de unidades de código UTF-16.
https://learn.microsoft.com/pt-br/dotnet/api/system.string?view=net-8.0
===============================================================
public (Referência de C#)
Artigo - 06/04/2023
A palavra-chave public é um modificador de acesso para tipos e membros de tipo. Acesso público é o nível de acesso mais permissivo. Não há nenhuma restrição quanto ao acesso a membros públicos, como neste exemplo:
https://learn.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/public
===============================================================
Consegui explicar?
[]'s,
Fabio I.