none
Propriedade automatica c# RRS feed

  • Pergunta

  • Boa noite

    Fiquei confuso sobre o uso de propriedades automaticas e metodos get e set, quando usar um ou outro? Qual é mais usual?

    //propriedade
    private string nome ;
    
     public string Nome
     {
         get
         {
             return this . nome ;
        }
        set
        {
            this . nome = value ;
        }
     }
    
    
    class Cliente
    {
        public string Nome { get ; set ; }
    }
    
    
    //****** get / set
    
    class Cliente
    {
       private string nome ;
     
       public string GetNome ()
       {
          return this . nome ;
       }
    
       public void SetNome ( string nome )
       {
           this . nome = nome ;
       }
    }

    Obrigado

    segunda-feira, 13 de janeiro de 2014 21:21

Respostas

  • Quando vc não precisar manipular o valor por ex : vamos supor que sua propriedade seja sempre o valor que o usuario digitar mais 1 então se digitar 10 o valor será 11 quando precisar manipular valor use o que vc entendeu, agora quando não precisar manipular valor por ex quando o usuário digitar 10 ou 0 ou 1 o valor sempre será 10 - 0 - 1 ai vc usa da maneira que mostrou acima.
    • Marcado como Resposta arthurocalzolari terça-feira, 14 de janeiro de 2014 14:43
    terça-feira, 14 de janeiro de 2014 13:30
  • o valor fica atribuído na propriedade, só não esta sendo implementado o encapsulamento!


    --Rafael Albuquerque

    • Marcado como Resposta arthurocalzolari terça-feira, 14 de janeiro de 2014 14:43
    terça-feira, 14 de janeiro de 2014 13:31

Todas as Respostas

  • Arthur ao meu ver não existe diferença de performance mais é o seguinte:

    na orientação de objetos para se aplicar o encapsulamento devem ser criados os atributos privados e propriedades publicas, alem dos valores que podem ser manipulados ex:

    private int _numero; //atributo 
    public int Numero //propriedade
    {
       get
       {
          return _numero + 2; //manipulando o resultado
       }
       set
       {
          _numero = value;
       }
    }

    caso não seja necessário a implementação não ha problema nenhum de se criar dessa maneira:

    public int Numero { get; set; }


    caso precise de alguma alteração:


    --Rafael Albuquerque

    • Sugerido como Resposta Daniel Brito br terça-feira, 14 de janeiro de 2014 09:57
    terça-feira, 14 de janeiro de 2014 02:17
  • Eu ainda nao entendi bem.. dessa maneira o metodo nao fica associado a alguma variavel? Como o valor atribuido fica armazenado? Quando é bom usar isso?

    //private string nome, cpf;

    publicstring Nome { get; set; }

    O outro eu entendi.

    Vlw

    terça-feira, 14 de janeiro de 2014 13:12
  • Quando vc não precisar manipular o valor por ex : vamos supor que sua propriedade seja sempre o valor que o usuario digitar mais 1 então se digitar 10 o valor será 11 quando precisar manipular valor use o que vc entendeu, agora quando não precisar manipular valor por ex quando o usuário digitar 10 ou 0 ou 1 o valor sempre será 10 - 0 - 1 ai vc usa da maneira que mostrou acima.
    • Marcado como Resposta arthurocalzolari terça-feira, 14 de janeiro de 2014 14:43
    terça-feira, 14 de janeiro de 2014 13:30
  • o valor fica atribuído na propriedade, só não esta sendo implementado o encapsulamento!


    --Rafael Albuquerque

    • Marcado como Resposta arthurocalzolari terça-feira, 14 de janeiro de 2014 14:43
    terça-feira, 14 de janeiro de 2014 13:31
  • show! Entendi.

    Obrigado pela atencao de voces.

    Abçs

    Arthuro

    terça-feira, 14 de janeiro de 2014 14:44