permet de dire que j'ai cette classe:C#: add objet initialiseur
class MyList<T>
{
}
Que dois-je faire pour cette classe, pour rendre possible suivante:
var list = new MyList<int> {1, 2, 3, 4};
permet de dire que j'ai cette classe:C#: add objet initialiseur
class MyList<T>
{
}
Que dois-je faire pour cette classe, pour rendre possible suivante:
var list = new MyList<int> {1, 2, 3, 4};
Avoir une méthode Add et mettre en œuvre IEnumerable.
class MyList<T> : IEnumerable
{
public void Add(T t)
{
}
public IEnumerator GetEnumerator()
{
//...
}
}
public void T()
{
MyList<int> a = new MyList<int>{1,2,3};
}
mise en œuvre ICollection sur MyList laissera le travail de syntaxe initalizer
class MyList<T> : ICollection<T>
{
}
Bien que le strict minimum serait:
public class myList<T> : IEnumerable<T>
{
public void Add(T val)
{
}
public IEnumerator<T> GetEnumerator()
{
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
}
}
ICollection<T> is also good.
+1, vous voudrez peut-être ajouter que doit prendre un paramètre du type dans la collection. – JaredPar
En fait, ce n'est pas vrai. Ce serait bizarre, mais votre méthode Add n'a pas besoin de prendre le type T. Il pourrait être: public void Ajouter (string t, char c) {} et vous pouvez appeler MyList a = new MyList { {"A", "c"}, {"B", "d"}}; –
RossFabricant