Konstruktor domyślny to jest taki konstruktor, który jest generowany automatycznie dla każdego obiektu przez kompilator C# i nie posiada on żadnych parametrów.
Konstruktor domyślny ma za zadanie zainicjować pola wartościami domyślnymi - czyli zerami . Tak na prawdę robi to za kulisami środowisko uruchomieniowe .
Jak dodasz własny konstruktor to domyślny konstruktor nie zostanie wygenerowany. Konstruktory można przeciążać . Jeden przeciążony konstruktor może wywoływać inny.
Są konstruktory statyczne klas i instancyjne (obiektów). Warto wiedzieć w jakiej kolejności to się wszystko odbywa. Najpierw inicjalizacja pól statycznych , potem konstruktor statyczny, następnie inicjalizacja pól obiektu i konstruktory obiektów. Nie zawsze konstruktor statyczny wykonywany jest jako pierwszy .
Jeśli jest taka sytuacja jak poniżej
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(A.Pole1);
}
}
class A
{
static public A Pole1 = new A();
static A()
{
Console.WriteLine("Konstruktor statyczny!");
}
public A()
{
Console.WriteLine("Konstruktor instancyjny!");
}
}
}
Mam nadzieje że przybliżyłem ci trochę temat konstruktorów