Je regardais C# initialiseurs de la collection et a constaté la mise en œuvre pour être très pragmatique, mais aussi très différent de tout autre chose en C#
Je suis en mesure de créer un code comme ceci:
using System;
using System.Collections;
class Program
{
static void Main()
{
Test test = new Test { 1, 2, 3 };
}
}
class Test : IEnumerable
{
public IEnumerator GetEnumerator()
{
throw new NotImplementedException();
}
public void Add(int i) { }
}
Depuis que j'ai satisfait aux exigences minimales pour le compilateur (mise en œuvre en IEnumerable
et public void Add
) cela fonctionne mais n'a évidemment aucune valeur.
Je me demandais ce qui a empêché l'équipe C# à partir de la création d'un plus strict des exigences? En d'autres termes pourquoi, pour que cette syntaxe pour compiler, le compilateur ne pas exiger que le type de mettre en oeuvre ICollection
? Qui me semble plus dans l'esprit de l'autre C# caractéristiques.