Olá, José. Tudo bom?
Quase isso!
Em seu código, note que há uma referência cíclica da propriedade Numero
para si mesmo:
public int Numero {
private get {
return this.Numero;
}
set {
this.Numero = value;
}
}
O correto seria criar um campo privado e o utilizar:
private int _numero;
public int Numero {
private get {
return this._numero;
}
set {
this._numero= value;
}
}
O código acima é equivalente ao código:
public int Numero { get; set; }
Criando com get e set desta forma, por mais que no momento o get/set não tenham nenhum código específico, temos a segurança de que no futuro poderemos alterar a lógica destes atributos sem nos preocupar em alterar outras classes que dependem destes atributos. Por exemplo:
public int Numero
{
get
{
/* recupera de um arquivo */
}
set
{
/* salva em um arquivo */
}
}
Usando campos públicos public int numero;
não teremos espaço para este tipo de alteração. Seria necessário criar um método com esta lógica e alterar todas as classes que alteram este campo público.
O que você acha? Esclareci sua dúvida?
Abs e bons estudos.