Propriedades de uma Classe C#

Propriedade é um membro que oferece um mecanismo flexível para ler, gravar ou calcular o valor de um campo particular.

 

Uma propriedade pode ser definida usando getters e setters, conforme abaixo:

 

Exemplo:

 

 

private int _minhaPropriedade;

public int MinhaPropriedade
{
    get { return _minhaPropriedade; }
    set { _minhaPropriedade = value; }
}

 

A propriedade encapsula um campo privado. Ele fornece getters (get {}) para recuperar o valor do campo subjacente e setters (set {}) para definir o valor do campo subjacente. No exemplo acima, _minhaPropriedade é um campo privado que não pode ser acessado diretamente. Só é acessado via MinhaPropriedade. Assim, MinhaPropriedade encapsula _minhaPropriedade.

 

Você também pode aplicar alguma lógica de adição em get e set, como no exemplo abaixo.

 

Exemplo

 

private int _minhaPropriedade;

public int MinhaPropriedade
{
    get {
        return _minhaPropriedade / 2;
    }

    set {
        if (value > 100)
            _minhaPropriedade = 100;
        else
            _minhaPropriedade = value;
    }
}

 

Propriedades de uma classe auto-implementada

 

A partir do C # 3.0, a declaração de propriedade foi facilitada se você não quiser aplicar nenhuma lógica em get ou set.

 

O exemplo seguinte é de uma propriedade auto-implementada.

 

Exemplo

 

public int MinhaPropriedadeAutoImplementada { get; set; }

 

Repare que não existe um campo de suporte privado no exemplo de propriedade acima. O campo de apoio será criado automaticamente pelo compilador. Você pode trabalhar com uma propriedade automática como faria com uma propriedade normal da classe. A propriedade auto implementada é apenas para facilitar a declaração da propriedade quando nenhuma lógica adicional é necessária nos “acessadores” de propriedades.

 

Usando propriedades de uma classe

 

As propriedades de uma classe combinam características de métodos e campos. Para o usuário de um objeto, uma propriedade parece ser um campo, afinal para acessar a propriedade usamos a mesma sintaxe de quando acessamos um campo.

 

Para quem implementa a classe, uma propriedade consiste em um ou dois blocos de código, que são os acessadores (get e set). O bloco de código do acessador get é executado quando a propriedade é lida. Por sua vez, quando a propriedade tem um novo valor atribuído a ela, o bloco de código do acessador set é executado.

 

Uma propriedade somente com a acessador get é considerado como somente leitura (read-only).

 

Uma propriedade somente com o acessador set é considerado como somente gravação (write-only).

 

Agora, uma propriedade com os dois acessadores é considerada como leitura/gravação (read-write).

 

Atenção: as propriedades não são classificadas como variáveis, portanto não podemos passar uma propriedade como parâmetro por referência (ref) ou de saída (out).

 

Considerações finais

 

Propriedades de uma classe podem ser marcadas com os modificadores de acesso public, private, protected, internal protected internal ou private protected. Eles definem como os usuários da classe podem acessar a propriedade.

Ao acessadores get e set de uma mesma propriedade podem ter modificadores de acesso diferentes.

Uma propriedade pode ser declarada como estática (static) e ficar disponível a qualquer momento para quem o chamar, mesmo se não existir nenhuma instancia da classe.

 

E para receber um aviso quando os próximos artigos forem publicados, se cadastre na lista VIP do Celso!

Comece pelo e-book GRATUITO

5 Passos Para Ser Um App Dev

Se você não sabe por onde começar, este e-book te mostra os passos para ser um desenvolvedor de aplicativos de sucesso.
100% livre de spam.

Para enviar seu comentário, preencha os campos abaixo:

Deixe uma resposta

*

Seja o primeiro a comentar!