Конструкторы
Конструктор инициализирует объект при его создании. У конструктора такое же имя, как и у его класса, а с точки зрения синтаксиса он подобен методу. Но у конструкторов нет возвращаемого типа, указываемого явно. Ниже приведена общая форма конструктора:
доступ имя_класса(список_параметров) { // тело конструктора }
Как правило, конструктор используется для задания первоначальных значений переменных экземпляра, определенных в классе, или же для выполнения любых других установочных процедур, которые требуются для создания полностью сформированного объекта. Кроме того, доступ обычно представляет собой модификатор доступа типа public, поскольку конструкторы зачастую вызываются в классе. А список_параметров может быть как пустым, так и состоящим из одного или более указываемых параметров.
Каждый класс C# снабжается конструктором по умолчанию, который при необходимости может быть переопределен. По определению такой конструктор никогда не принимает аргументов. После размещения нового объекта в памяти конструктор по умолчанию гарантирует установку всех полей в соответствующие стандартные значения. Если вы не удовлетворены такими присваиваниями по умолчанию, можете переопределить конструктор по умолчанию в соответствии со своими нуждами.
Конструктор также может принимать один или несколько параметров. В конструктор параметры вводятся таким же образом, как и в метод. Для этого достаточно объявить их в скобках после имени конструктора.
Давайте рассмотрим применение конструкторов на примере:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class MyClass { public string Name; public byte Age; // Создаем параметрический конструктор public MyClass(string s, byte b) { Name = s; Age = b; } public void reWrite() { Console.WriteLine("Имя: {0}\nВозраст: {1}", Name, Age); } } class Program { static void Main(string[] args) { MyClass ex = new MyClass("Alexandr", 26); ex.reWrite(); Console.ReadLine(); } } }
Как видите, в данном примере поля экземпляра класса ex инициализируются по умолчанию с помощью конструктора.
Комментарии