Obiekt w konstruktorze

0

Witam, otóż mam takie pytanie: jaka jest praktyczna różnica pomiędzy poniższymi wersjami kodu?

 class Ewidencja
    {
        public List<Osoba> osoby;
        public Ewidencja()
        {
            osoby = new List<Osoba>();
        }
 class Ewidencja
    {
        public List<Osoba> osoby = new List<Osoba>();

Czy dobrze myślę, że różnica jest taka, że po uruchomieniu programu w 2 wersji kodu od razu mamy tworzoną listę, a w pierwszej wersji lista obiektów jest tworzona nie po uruchomieniu programu, lecz dopiero po faktycznym stworzeniu instancji klasy Ewidencja(ponieważ wtedy jest dopiero użyty konstruktor)?

5

Nie, inicjalizator pola osoby też nie zostanie wykonany dopóki nie utworzysz obiektu klasy Ewidencja. Oba powyższe kody są równoważne.

0

Po utworzeniu obiektu, najpierw sa inicjalizowane pola, poźniej jest wykonywany konstruktor.

0

tak BTW które podejście preferujecie?

0

Ale jest chyba mała różnica. Tzn. inicjalizator rusza tuż przed konstruktorem, tak? Raczej nie potrafię sobie wyobrazić zastosowania do tego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1