Talvez os termos que estejam confundindo. Vou separar:
Variável:
class Conta
{
private void button1_click(...)
{
double saldo = 0.0; // Isso é uma variável
}
}
Atributo:
class Conta
{
private double saldo; // Isso é um atributo
private void button1_click(...)
{
(...)
}
}
Propriedade:
class Conta
{
public double Saldo { get; set; } // Isso é uma propriedade
private void button1_click(...)
{
(...)
}
}
Dito isso, vamos à sua afirmação:
eu declarando a variavel saldo como public e colocando as propreties dela {private get; private set} seria a mesma coisa que declarar ela como privada, correto?
Resposta: não. Veja o código do que você sugere:
class Conta
{
public double saldo; // Isso é uma variável
private void setSaldo(double saldo)
{
this.saldo = saldo;
}
private double getSaldo()
{
return saldo;
}
}
Com esse código acima, eu posso acessar diretamente a variável saldo por ela ser pública. Eu posso ignorar os acessores (getter e setter).
Agora, se foi o caso de colocar os acessores de uma propriedade como private:
class Conta
{
public double Saldo { private get; private set; }
private void button1_click(...)
{
(...)
}
}
Nesse caso, eu não tenho acesso à propriedade fora da classe Conta, mesmo que ela seja pública, pois meus dois acessores são privados. Mas, ainda sim, o private não entra em desuso, muito pelo contrário.
Ajudou?