[duvida] get e set C#

22/12/2011

0

Bom dia , gostaria de saber como eu faria para acessar por exemplo , estes dados usando este comando de get e set

public class Pessoa
{
private int _id { get; set; }
private string _nome { get; set; }
private string _email { get; set; }
private DateTime _dataNascimento { get; set; }
private char _sexo { get; set; }
}
Arlindo

Arlindo

Responder

Post mais votado

09/01/2012

Olá Aline!

O seu problema está nos limitadores de acesso aplicados à essas propriedades;
Você está fazendo:

private int _id {get; set;} 


Ao fazer isso, você está dizendo para a linguagem que o acesso à variável _id é controlado por ela própria. Como ela é private, somente a própria classe pode acessá-la.

Para resolver seu problema, bastaria colocar o limitador de acesso como public ou internal.

Em outra forma de escrever o comando, você poderia utilizar:

private int _id;
public int ID
{
 get { return _id; }
 set { _id = value; }
}


No exemplo acima, a variável privada _id somente poderá ser acessada pela propriedade ID, dessa forma, você pode incrementar o comando set, por exemplo, tratando que se o valor a ser atribuído for negativo, o _id recebe 0.

 set { if (value < 0) { _id = 0; } else { _id = value; } } 


Ou ainda, pode permitir que apenas classes que herdam sua classe podem atribuir valores na variável _id, colocando um limitador específico para a atribuição:

 protected set { _id = value; } 


Dessa forma, as outras classes só poderão ler o conteúdo da propriedade ID.

São muitas variações para o mesmo comando.
Se você estiver usando o visual studio, crie uma variável qualquer, como um private string _teste; e com o cursor sobre esta linha, faça um ctrl+R e ctrl+E... o VS fará o restante.

Esperto ter ajudado
Abraço

Giordani Ramos

Giordani Ramos
Responder

Mais Posts

22/12/2011

Fabio Rosa

Bom dia!

Os métodos get e set estão implícitos nas operações de atribuição de valores para as propriedades, por exemplo:

- Quando você faz a seguinte atribuição:

Pessoa._nome = Fabio

, o C# internamente está usando o set.

- Quando você faz a seguinte atribuição

var nome = Pessoa._nome

, o C# internnamente está usando o get.

Não sei se seria esta a sua dúvida....?

Att.
Responder

22/12/2011

Arlindo

Então eu não sei como acessar o
private string nome {get;set;}

Só sei fazer desta maneira :

private string nome ;



public void setnome(string nome)
{
this.nome=nome;
}

public string getnome()
{
return this.nome;
}
Responder

23/12/2011

Flavia Santos

Aline,

Segue abaixo um exemplo de uma classe e como utilizá-la. Caso tenha ficado duvidas posta ai.

=> Criando a classe Pessoa
public class Pessoa
{
private String _Nome;
public String Nome
{
get {return _Nome ;}
set {_Nome = value ;}
}

}

Utilizando a classe Pessoa.

=> Instanciando a minha classe
Pessoa objPessoa = new Pessoa();

=> Atribuindo a propriedade Nome da classe Pessoa o valor de um textbox
txtNome.Text = objPessoa.Nome;

=> Atribuindo a um textbox a propriedade Nome da classe Pessoa
objPessoa.Nome = txtNome.Text;
Responder

23/12/2011

Flavia Santos

Aline,

Desculpa a ultima explicação ficou confusa, o correto é:

=> Atribuindo a um textbox a propriedade Nome da Classe Pessoa
txtNome.Text = objPessoa.Nome;


=> Atribuindo a propriedade Nome da classe Pessoa o valor de um textbox;
objPessoa.Nome = txtNome.Text;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar