Progamando, Tutorial

C# – Para Iniciantes – Parte 5 – Properties

Olá pessoal, Falaremos hoje sobre C# Properties.

Uma propriedade (Property) é um membro de uma classe que fornece um mecanismo flexível para ler, gravar ou calcular o valor de um dado em particular.
As propriedades permitem que uma classe exponha de uma maneira pública a obtenção e definição destes valores.

Por ex. Temos a classe Carro, uma propriedade de carro é sua cor, ou seja, Cor é um atributo (propriedade) de Carro.

Uma propriedade pode obter um valor de uma classe e também pode defini-lo, sendo assim temos propriedades Read/Write ou apenas Readonly. 
Um exemplo:

1 // Essa é sua variável interna (privada)
2 private string _cor;
3
4 // Essa é sua propriedade pública.
5 public string Cor
6 {
7   get { return _cor; }
8   set { _cor = value; }
9 }

Notaram que ao ler o valor (get) a propriedade retorna o valor da variável interna e ao gravar (set) a variável interna é alterada para um novo valor.

1 // Fazendo Get
2 string CorCarro = Carro.Cor;
3
4 // Fazendo Set
5 Carro.Cor = "Preto";

E se a propriedade for Readonly?

1 // Essa é sua variável interna (privada)
2 private string _cor;
3
4 // Essa é sua propriedade pública.
5 public string Cor
6 {
7   get { return _cor; }
8 }

Viram? Internamente não implementa o recurso do Set, ou seja, apenas podemos ler o estado, sem alterá-lo.

Agora que já está entendido, mais novidade:
Desde o C# 3.0 (Já estamos no 5.0) foi incluído o recurso de Automatic Properties (Propriedades Automáticas), ou seja, não necessitamos mais declarar o Get nem o Set, aquela variável interna de controle também não (é gerenciado automático).

Então como fica?

1 // Essa é sua propriedade Read/Write.
2 public string Cor { get; set; }
3
4 // Essa é sua propriedade Readonly.
5 public string Cor { get; }

Menos código, mais agilidade 🙂

Tem mais uma novidade, através do Visual Studio (2008 ou superior) podemos escrever rapidamente muitas propriedades utilizando o atalho “prop”

É muito simples, Apenas digite prop e dê Tab duas vezes.