Прескочи до съдържанието
Редактирай

Constructor

Конструктор (Constructor)

Конструкторът е специален метод, който се извиква автоматично при създаването на обект. Той инициализира полетата на класа и извършва необходимата начална настройка.

Видове конструктори

Конструктор по подразбиране

public class User
{
    // Ако не дефинираме конструктор, C# създава празен конструктор по подразбиране
    public User() { }
}

Параметризиран конструктор

public class User
{
    private string name;
    private int age;

    public User(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

Статичен конструктор

public class Database
{
    private static string connectionString;

    // Изпълнява се само веднъж при първото използване на класа
    static Database()
    {
        connectionString = "Server=localhost;Database=mydb;";
    }
}

Частен конструктор

public class Singleton
{
    private static Singleton instance;
    
    // Частен конструктор - не може да се създават инстанции извън класа
    private Singleton() { }
    
    public static Singleton Instance
    {
        get
        {
            if (instance == null)
                instance = new Singleton();
            return instance;
        }
    }
}

Верижни конструктори

public class Person
{
    private string name;
    private int age;
    private string email;

    // Основен конструктор
    public Person(string name, int age, string email)
    {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    // Верижен конструктор, извиква основния
    public Person(string name, int age) : this(name, age, null)
    {
    }

    // Верижен конструктор само с име
    public Person(string name) : this(name, 0)
    {
    }
}

Конструктор с инициализатор на обект

public class Point
{
    public int X { get; set; }
    public int Y { get; set; }
}

// Използване
var point = new Point { X = 10, Y = 20 };

Конструктор с параметри по подразбиране

public class Configuration
{
    public string Host { get; }
    public int Port { get; }

    public Configuration(
        string host = "localhost",
        int port = 8080)
    {
        Host = host;
        Port = port;
    }
}

Конструктор в наследяване

public class Animal
{
    protected string name;

    public Animal(string name)
    {
        this.name = name;
    }
}

public class Dog : Animal
{
    private string breed;

    // Извиква конструктора на базовия клас
    public Dog(string name, string breed) : base(name)
    {
        this.breed = breed;
    }
}
class User {
    public User(string name) {
        this.Name = name;
    }
}