Considere que a Property é o que chamamos de "acessor", pois a responsabilidade dela é apenas proteger a entrada e saída dos seus fields (campos). Ao longo do seu código voce usará os valores salvos no seu field, e na property você pode adicionar além da proteção do encapsulamento (private set), também validações como no exemplo abaixo:
string _cpf = "000.000.000-00";
public string Cpf {
get{ return _cpf; }
set {
if(value == "")
throw new Exception("Não pode atribuir um CPF vazio.");
if(value.Length > 11)
throw new Exception("Cpf não pode ter mais de 11 dígitos");
_cpf = value;
}
}