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.

Деклариране на конструктор<br />

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

Ако имаме класа Dog, ето как би изглеждал неговия най-опростен конструктор:<br />

public Dog()<br />

{<br />

}<br />

Формално, декларацията на конструктора изглежда по следния начин:<br />

[] ([])<br />

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

връщана стойност (затова ги нарекохме псевдометоди).<br />

Име на конструктора<br />

В C# задължително името на всеки конструктор съвпада с името на<br />

класа, в който го декларираме – . В примера по-горе, името<br />

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

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

скоби – "(" и ")".<br />

В C# не е позволено, да се декларира метод, който притежава име, което<br />

съвпада с името на класа (следователно и с името на конструкторите). Ако<br />

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

до грешка при компилация.<br />

public class IllegalMethodExample<br />

{<br />

// Legal constructor<br />

public IllegalMethodExample ()<br />

{<br />

}<br />

}<br />

// Illegal method<br />

private string IllegalMethodExample()<br />

{<br />

return "I am an illegal method!";<br />

}<br />

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

съобщение за грешка:<br />

SampleClass: member names cannot be the same as their enclosing type

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

Saved successfully!

Ooh no, something went wrong!