8

Jaka jest różnica między metodami System.ComponentModel.BindingListi AddNew()? W dokumentacji MSDN mówi tak:System.ComponentModel.BindingList: Dodaj (obiekt) kontra AddNew()

  • Add: Dodaje obiekt do końca Collection<T>.

  • AddNew: Dodaje nowy element do kolekcji.

Wydaje się, że obie metody dodać element do kolekcji, ale Add(object) robi to w jednym ujęciu natomiast AddNew() jest nieco bardziej skomplikowana. Moje testy z Add(object) wydają się działać, ale chcę wiedzieć, czy używam prawidłowej metody.

Jaka jest różnica między tymi metodami?

+4

AddNew dodaje "pusty" obiekt. Został uruchomiony tylko domyślny konstruktor. Podnosi zdarzenie AddingNew, aby umożliwić innym klasom spersonalizowanie inicjowania obiektu. Zauważ, że EndNew musi zostać wywołany po ustawieniu jego właściwości. Nie jest jasne, który z nich jest "lepszy" w twoim przypadku. Prostota jest lepsza. –

+1

@HansPassant oszczędzasz życie! Miałem dziwne zachowanie, ponieważ nie nazywałem '.EndNew' i byłem tak zdezorientowany. Metadane na '.AddNew' naprawdę powinny wspomnieć o tym wymogu! –

Odpowiedz

7

AddNew() tworzy obiekt dla Ciebie (dlatego nie ma parametru).
Jest przeznaczony do użycia przez sieci, które nie wiedzą, jak utworzyć nowy obiekt do przekazania do Add().