Object e Collection Initializers
Posted on March 27th, 2008Mais uma novidade do C# 3.0 é a nova sintaxe para a inicialização de objetos e coleções.
Object Initializers
Agora podemos ao instanciar um objeto passar valores para as suas propriedades.
public class Pessoa {
 public string Nome { get; set; }
 public string Email { get; set; }
}
Pessoa joao = new Pessoa() { Nome = "João", Email = "joao@gmail.com" };
Pessoa maria = new Pessoa() { Nome = "Maria", Email = "maria@gmail.com" };
No exemplo acima, são instanciados dois objetos do tipo Pessoa, chamando o construtor padrão, e em seguida setadas as propriedades Nome e Email.
Tudo em uma única linha de código.
Também é possÃvel passar parâmetros para o construtor, conforme o exemplo a seguir:
public class Pessoa {
 public string Nome { get; set; }
 public string Email { get; set; }
 public int Idade { get; set; }
 public Pessoa(string nome)
 {
   this.Nome = nome;
 }
}
Pessoa pedro = new Pessoa("Pedro") {
 Email = "pedro@gmail.com",
 Idade = 20
};
Collection Initializers
Já nas coleções podemos passar um conjunto de objetos.
No exemplo abaixo a coleção pessoas é instanciada com os objetos joao, maria e pedro como os seus membros.
IList<Pessoa> pessoas = new List<Pessoa>() { joao, maria, pedro }
É aqui uma combinação das duas formas.
IList<Pessoa> pessoas = new List<Pessoa>() {
 joao, maria, pedro,
 new Pessoa() { Nome = "Jose", Email = "jose@gmail.com" }
}
Conclusão
Como vimos nesse segundo post, o C# 3.0 vem trazendo grandes melhorias para a implementação de um código mais legÃvel e bonito.
Muitas dessas melhorias foram influenciadas por dois projetos da Microsoft Research, o F# e o Cω.
Nesse post, Tomas Petricek detalha as novidades incorporadas no C# 3.0 vindas desses dois projetos.




Recent Comments