Object e Collection Initializers
.NET 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