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:
// Essa é sua variável interna (privada)
private string _cor;
// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
  set { _cor = value; }
}
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.
// Fazendo Get string CorCarro = Carro.Cor; // Fazendo Set Carro.Cor = "Preto";
E se a propriedade for Readonly?
// Essa é sua variável interna (privada)
private string _cor;
// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
}
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?
// Essa é sua propriedade Read/Write.
public string Cor { get; set; }
// Essa é sua propriedade Readonly.
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.