C Sharp/Конструктор класса

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Конструктор класса (конструктор в C#) — используется для создания переменных каждого конкретного экземпляра класса, если создание объекта класса осуществляется с помощью оператора new.

Для инициализации класса с модификатором static или статических переменных в нестатическом классе необходимо определить статический конструктор.

Syntax

Перед названием конруктора тип не ставится т.к. конструктор не возвращает значений, и даже void писать не надо.

Вызов конструкторов по цепочке при наследовании

При наследовании классов в C Sharp конструкторы вызываются по цепочки наследования начиная от базового класса. Всегда автоматически вызывается конструктор по умолчанию каждого класса в иерархии наследования. Если такого конструктора нет, то есть был создан конструктор с перегрузкой и не определён конструктор по умолчанию, то будет ошибка.

Инициализатор конструктора

Отличительной особенностью конструкторов классов в C Sharp является то, что они могут вызывать другие конструкторы этого или базового класса с помощью инициализатора (это не список инициализации как в C++, хотя синтаксис похож), то есть ещё до описания самого тела конструктора. При обращении к другому конструктору в инициализаторе требуется указать одно из ключевых слов: this (текущий класс), base (базовый класс).

Примеры конструкторов классов

В следующем примере показан конструктор экземпляра.

class CoOrds {
    public int x, y;
    public CoOrds() { // constructor
        x = 0;
        y = 0;
    }
}

Конструктор класса может вызвать другой (перегруженный) конструктор своего класса с помощью инициализатора.

class Circle {
    public Circle(double radius) : this(radius, 0, true) {}
}

Конструктор класса может вызвать конструктор базового класса с помощью инициализатора.

class Circle : Shape {
    public Circle(double radius) : base(radius, 0) {}
}

См. также

Шаблон:C Sharp