Escrito em July 16th, 2009 as 7:37 am por

3 Comentários

Tenho ouvido muitas pessoas falarem das tais propriedades automáticas do .Net 3.0 ou Superior.

Resolvi dar uma olhada e ver o que eleas fazem. Para tanto, eis uma classe de exemplo:

public class Usuario
{
    public string Nome { get; set; }
    public int Idade { get; set; }
    private string _Sexo;
    private string Sexo
    {
        get
        {
            return this._Sexo;
        }
        set
        {
            this._Sexo = value;
        }
    }
}

Temos 2 propriedades automática (Nome e Idade) e uma propriedade que foi feita do jeito antigo (Sexo).

A primeira vista as propriedades automáticas precisam de menos código para serem feitas o que já garante uma melhor produtividade, mas, por outro lado há uma perda de controle e flexibilidade.

Vamos pensar assim: Se você precisar realizar alguma ação no GET ou SET da propriedade, então não poderá utilizar uma propriedade automática, pois o .Net é que irá gerar o código para você.

Vamos ver por dentro da classe compilada:

public class Usuario
{
    // Fields
    private string _Sexo;
    [CompilerGenerated]
    private int <Idade>k__BackingField;
    [CompilerGenerated]
    private string <Nome>k__BackingField;
    // Properties
    public int Idade
    {
        [CompilerGenerated]
        get
        {
            return this.<Idade>k__BackingField;
        }
        [CompilerGenerated]
        set
        {
            this.<Idade>k__BackingField = value;
        }
    }
    public string Nome
    {
        [CompilerGenerated]
        get
        {
            return this.<Nome>k__BackingField;
        }
        [CompilerGenerated]
        set
        {
            this.<Nome>k__BackingField = value;
        }
    }
    private string Sexo
    {
        get
        {
            return this._Sexo;
        }
        set
        {
            this._Sexo = value;
        }
    }
}

Podemos observar claramente o que o compilador do .Net fez por nós, ou seja, gerou os campos (Fields) das propriedades e gerou automáticamente o GET e SET.

Então podemos concluir que existe sim o ganho de produtividade neste processo, mas, nem sempre poderemos utilizar.

Então meu conselho é: Use com Moderação………

Se você gostou do post, deixe um comentário ou assine nosso RSS RSS.

Posts Relacionados:

  1. Reflection – Parte 4 (Propriedades)
  2. .Net Framework Inside : Otimizações do Compilador
  3. Reflection Parte 2 – Construtores
  4. Tipos Nulos (Nullable Value Types)
  5. Ordenação de Listas (Coleções)
  6. Extension Methods em C#
  7. Reflection – Parte 5 (Interfaces)
, ,

3 Respostas to “Por Dentro das Propriedades Automáticas”


  1. Raphael

    2 years ago

    Parabéns pelo post, muito bem colocado!


  2. Fernando

    2 years ago

    Inútil!! :S


  3. Marcelo

    1 year ago

    Com certeza é ÚTIL!!!

Deixa uma Resposta

znjdb32s6g