C #: список добавить инициализатор объекта - PullRequest
0 голосов
/ 25 марта 2009

Допустим, у меня есть этот класс:

class MyList<T>
{

}

Что я должен сделать с этим классом, чтобы сделать возможным следующее:

var list = new MyList<int> {1, 2, 3, 4};

Ответы [ 3 ]

3 голосов
/ 25 марта 2009

Имейте метод Add и реализуйте 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};
}
1 голос
/ 25 марта 2009

Реализация ICollection на MyList позволит синтаксису инициализатора работать

class MyList<T> : ICollection<T>
{
}

Хотя минимальный минимум будет:

public class myList<T> : IEnumerable<T>
{
    public void Add(T val)
    {
    }

    public IEnumerator<T> GetEnumerator()
    {
    }

    System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
    {
    }
}
0 голосов
/ 25 марта 2009
ICollection<T> is also good.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...