Inicjalizacja obiektów w c#

Zastanawialiście się, a może wiecie jak wygląda inicjacja obiektów w c#? Co w jakiej kolejności jest wykonywane? Rozważmy przykład jak na poniższym listingu oraz załóżmy, że tworzymy obiekt klasy B. Co wykona się pierwsze? A co ostatnie?

   1: public class A
   2: {
   3:     int x = 0;
   4:     public A(int x)
   5:     {
   6:         ...
   7:     }
   8: }
   9: public class B : A
  10: {
  11:     int y = 0;
  12:     public B(int x)
  13:         :base(x + 100)
  14:     {
  15:         ...
  16:     }
  17: }

W c# inicjacja obiektów przebiega następująco:

  1. Z klasy potomnej do bazowej
    1. Pola klasy są inicjowane
    2. Obliczane są argumenty przekazywane do konstruktorów klas bazowych
  2. Z klasy bazowej do potomnej
    1. Wykonywany jest kod konstruktorów

W przykładzie kod będzie wykonywany w następującej kolejności (podane numery to numery wiersza z listingu): 11, 13, 3, 6 oraz 15. Prawda, że proste? Smile

Tags:
Categories: Techniczne

Permalink E-mail | Kick it! | DZone it! | del.icio.us Komentarze (0) Post RSSRSS comment feed

Dodaj komentarz


(Będzie pokazywało Gravatar ikon)

  Country flag

biuquote
  • Komentarz
  • Przegląd
Loading