25.07.2017 Views

Intro-CSharp-Book-v2015

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Глава 14. Дефиниране на класове 553<br />

Както е указано чрез коментар в първия конструктор от примера по-горе,<br />

ако е необходимо, в допълнение към извикването на някой от другите<br />

конструктори с определени параметри всеки конструктор може в тялото си<br />

да добави код, който прави допълнителни инициализации или други<br />

действия.<br />

Конструктор по подразбиране<br />

Нека разгледаме следния въпрос – какво става, ако не декларираме конструктор<br />

в нашия клас? Как ще създадем обекти от този тип?<br />

Тъй като често се случва даден клас да няма нито един конструктор, този<br />

въпрос е решен в езика C#. Когато не декларираме нито един конструктор,<br />

компилаторът ще създаде един за нас и той ще се използва при<br />

създаването на обекти от типа на нашия клас. Този конструктор се нарича<br />

конструктор по подразбиране (default implicit constructor), който<br />

няма да има параметри и ще бъде празен (т.е. няма да прави нищо в<br />

допълнение към подразбиращото се зануляване на полетата на обекта).<br />

Когато не дефинираме нито един конструктор в даден<br />

клас, компилаторът ще създаде един, наречен конструктор<br />

по подразбиране.<br />

Например, нека декларираме класа Collar, без да декларираме никакъв<br />

конструктор в него:<br />

public class Collar<br />

{<br />

private int size;<br />

}<br />

public int Size<br />

{<br />

get { return size; }<br />

}<br />

Въпреки че нямаме изрично деклариран конструктор без параметри, ще<br />

можем да създадем обекти от този клас по следния начин:<br />

Collar collar = new Collar();<br />

Конструкторът по подразбиране изглежда по следния начин:<br />

() { }<br />

Трябва да знаем, че конструкторът по подразбиране винаги носи името на<br />

класа и винаги списъкът му с параметри е празен и неговото<br />

тяло е празно. Той просто се "подпъхва" от компилатора, ако в класа няма<br />

нито един конструктор. Подразбиращият се конструктор обикновено е

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!