Конструктор
Метод який називається так само як клас, запускається першою і ініціалізує поля класу
Перший конструктор С1 працює швидше за С2
class C1 {
int A;
int B;
public C1(int a, int b) { A = a; B = b; } // добре
}
C1 c = new C1(1, 2);
----------------------
class C2 {
public int A;
public int B;
public C2() { }
}
C2 c = new C2();
c.A = 1; // повільно
c.B = 2; // повільно
Викликати конструктор базового класу
class A : B
{
public string ID { get; set; }
public A(string name, string id) : base(name)
{
ID = id;
}
}
Викликати інший конструктор
class A
{
public A() : this(-1, "") {
}
public A(int weight, string name) {
}
}
Конструктор може бути приватним, аби інші класи не могли створювати об'єкти
Конструктор копіювання
// два об'єкти матимуть одну і туж адресу
Worker w2 = w1;
// два різних об'єкти
public Point(Point p) {
x = p.x;
y = p.y;
}
Point p2 = new Point(p1);