System.ComponentModel.BindingList: Add(объект) против AddNew()

В чем разница между System.ComponentModel.BindingList методы Add(object) а также AddNew()? Документация MSDN гласит:

  • Add: Добавляет объект в конец Collection<T>,

  • AddNew: Добавляет новый элемент в коллекцию.

Кажется, что оба метода добавляют элемент в коллекцию, но Add(object) делает это одним выстрелом, тогда как AddNew() немного сложнее. Мои тесты с Add(object) кажется, работает, но я хочу знать, использую ли я правильный метод.

Так в чем же разница между этими методами?

2 ответа

Решение

AddNew() создает объект для вас (вот почему у него нет параметра).
Он предназначен для использования сетками, которые не знают, как создать новый объект для передачи Add(),

AddNew() очень удобен (это хорошо известный шаблон проектирования Factory), когда вы реализуете класс, производный от BindingList().

Это позволяет вашему коду инициализировать новые элементы со значениями, которые зависят от самого списка — например, внешний ключ к родительскому объекту, если список привязки содержит список дочерних элементов.

Другие вопросы по тегам