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:
- Z klasy potomnej do bazowej
- Pola klasy są inicjowane
- Obliczane są argumenty przekazywane do konstruktorów klas bazowych
- Z klasy bazowej do potomnej
- 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? 
Tags: csharp
Categories: Techniczne
35dfefea-f235-44cd-a75a-203884dcc4e5|1|1.0