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().
Это позволяет вашему коду инициализировать новые элементы со значениями, которые зависят от самого списка — например, внешний ключ к родительскому объекту, если список привязки содержит список дочерних элементов.