Конструкторы

В приведенных выше примерах программ переменные экземпляра каждого объекта типа Building приходилось инициализировать вручную. Такой прием обычно не применяется в профессионально написанном коде С#. Кроме того, он чреват ошибками. Впрочем, существует лучший способ решить подобную задачу: воспользоваться конструктором. Конструктор инициализирует объект при его создании. У конструктора такое же имя, как и у его класса, а с точки зрения синтаксиса он подобен методу. Но у конструкторов нет возвращаемого типа, указываемого явно. Ниже приведена общая форма конструктора.

доступ имя_класса(список_параметров) {// тело конструктора}

Как правило, конструктор используется для задания первоначальных значений переменных экземпляра, определенных в классе, или же для выполнения любых других установочных процедур, которые требуются для создания полностью сформированного объекта. Кроме того, доступ обычно представляет собой модификатор доступа типа public, поскольку конструкторы зачастую вызываются в классе. А список_параметров может быть как пустым, так и состоящим из одного или более указываемых параметров.

У всех классов имеются конструкторы, независимо от того, определите вы их или нет, поскольку в С# автоматически предоставляется конструктор, используемый по умолчанию и инициализирующий все переменные экземпляра их значениями по умолчанию. Для большинства типов данных значением по умолчанию является нулевое, для типа bool — значение false, а для ссылочных типов — пустое значение.

Но как только вы определите свой собственный конструктор, то конструктор по умолчанию больше не используется. Ниже приведен простой пример применения конструктора.

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConstructorProbe{ class MyClass { public int x; public MyClass() //конструктор { x = 10; } } class Program { static void Main(string[] args) { MyClass tl = new MyClass(); MyClass t2 = new MyClass(); Console.WriteLine(tl.x + " " + t2.x); Console.ReadLine(); } }}