Por que um método Add é necessário para a inicialização {}?
Para usar a sintaxe de inicialização como esta:
var contacts = new ContactList
{
{ "Dan", "[email protected]" },
{ "Eric", "[email protected]" }
};
... meu entendimento é que meuContactList
tipoprecisaria definir umAdd
método isso leva doisstring
parâmetros:
public void Add(string name, string email);
O que é um pouco confuso para mim é que o{ }
sintaxe inicializador parece mais útilao criar coleções somente leitura ou tamanho fixo. Afinal, ele pretende imitar a sintaxe de inicialização de ummatriz, direito? (OK, portanto, as matrizes não são somente leitura; mas elasestão tamanho fixo.) E, naturalmente, só pode ser usado quando o conteúdo da coleção é conhecido (pelo menos o número de elementos) em tempo de compilação.
Portanto, parece quase que o principal requisito para usar esta sintaxe do inicializador de coleção (ter umAdd
método e, portanto, uma coleção mutável) está em desacordo com o caso típico em que seria mais útil.
Tenho certeza de que não pensei muito nesse assunto como a equipe de design do C #; parece que poderia haver regras diferentes para essa sintaxe que se encaixariam melhor em seus cenários de uso típicos.
Estou fora da base aqui? O desejo de usar o{ }
sintaxe para inicializar coleções de tamanho fixo não é tão comum quanto eu acho? Que outros fatores podem ter influenciado a formulação dos requisitos para esta sintaxe em que simplesmente não estou pensando?