Início > C# > Propriedades de Classes C#

Propriedades de Classes C#

Uma propriedade é um cruzamento entre um campo e um método, ela se parece muito com a definição de um campo (sintaxe), porém contém dois blocos de código, começando pela palavra chave get / set.

O bloco Get contém as instruções que serão executadas quando uma propriedade é acessada (leitura). Já o bloco Set contém as instruções que serão executadas quando ela é gravada (definido um valor).

 

A idéia da propriedade é encapsular os campos das classes, afim de não permitir acesso direto aos campos de uma classe.

 

Veja um exemplo da sintaxe de uma propriedade no C#:

 

Framework 2.0 ou inferior :

 

private string nomeProp;

public string NomeProp

{

    get { return nomeProp; }

    set { nomeProp = value; }

}

 

Framework 3.0 ou superior:  No Framework 3.0 ou superior, a propriedade cria automaticamente os campos private , não precisando ser declarados, com isso se têm um ganho de produtividade e redução de linhas de código.

public string NomeProp

{

      get;

      set;

}

 

As propriedades possuem os mesmo modificadores de acesso de uma classe (private, public, protected), no entando não faz sentido deixar uma propriedade como private, já que a idéia e encapsular os campos de uma classe J

Definindo uma Propriedade somente Leitura:

Imagina que você deseja criar uma propriedade que seu valor pode ser lido por outras classes, porém este valor em nenhum momento poderá ser definido (Set), como escrever isso usando C# ?

Fácil, basta na declaração da propriedade colocar  no bloco de código set (definir valor), automaticamente, a propriedade irá assumir como somente leitura.

Exemplo:

public string NomeProp

{

    get { return nomeProp; }

}

 

E se a intenção for o contrário ou seja uma propriedade somente gravação, veja como ficaria o código:

public string NomeProp

{

    set { nomeProp = value; }

}

 

Bom, agora vamos um pouco mais além, e se eu tivesse a necessidade de declarar uma propriedade onde ela seria somente leitura para as outras classes, porém na classe onde estou criando ela, eu tivesse que trabalhar gravando e definindo valores, como ficaria o código:

Nesta situação podemos criar o bloco get/set porém iremos usar os modificadores de acesso nele. Repare no código abaixo que estou colocando a palavra private dentro do código, isso indica que o bloco será acessível à classe que a criou, no entanto as demais classes não poderão definir seu valor.

public string NomeProp

{

   get;

   private set;

}

 

Imagine agora que houve a necessidade de permitir que as classes filhas (que herdam) da classe atual, definam (gravem) valor nesta propriedade, neste caso apenas iríamos trocar o modificador de acesso:

public string NomeProp

{

   get;

   protected set;

}

 

Bom, é isso ai espero que isso seja útil..

 

Abraço,

 

Categorias:C#
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: