Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

por onde é passado o parâmetro para funcionar o SET?

na linguagem JAVA, por exemplo é preciso passar um parâmetro para o set pra ser definido o valor do atributo, como isso funciona em C#? exemplo:

public void setCpf(String cpfInformado){
    this.cpf = cpfInformado;
}
public string Cpf {
        get
        {
            return cpf;
        }
        set
        {
            this.cpf = value; // nao entendi essa parte, pois não há nenhum parâmetro (pelo menos nao identifiquei) sendo informado para o cpf cereber o valor
        }
    }
5 respostas
solução!

Mateus, esse trecho do código é auto gerado pelo compilador.

Repare que se você tentar utilizar qualquer outra palavra diferente de value, o setter não irá funcionar como deveria. Isso acontece pois value é uma palavra reservada que recebe o valor atribuído à variável quando o setter é utilizado. O compilador reconhece o código dentro do bloco set e gera o código do setter usual, semelhante ao do Java!

agora entendi Marco! mas, e no caso de mais de um parâmetro?

O setter tradicional não recebe mais de um parâmetro. A boa prática nesse caso é criar um método alternativo que receba os parâmetros desejados e atribua o valor à variavel. Poderia ser uma sobrecarga do tradicional.

entendi claramente agora :D obrigado!

O "value" é criado automaticamente quando você seta um valor pra propriedade.

Você também pode criar um field para guardar o valor da propriedade e proteger melhor sua informação:

private string _cpf;

public string Cpf {
        get
        {
            return _cpf;
        }
        set
        {
            this._cpf = value; 
        }
    }