[BOOK] Нещо в глава 14 което не мога да го проумея.


1

Първа тема ми е, дано не объркам нещо... :)

Та на въпроса - имам опит в програмирането от преди много години. Доста неща са ми ясни, които не са ми ясни засега ги прескачам. Опитвам се да си представям как ще работи даденото нещо. Но стигам до един пример който не мога да си обясня защо така е показан:

Става въпрос за 566-а страница от PDF изданието - "Метод за четене на стойността на свойство (getter)". Там има следния пример:

Въпреки, че по-рано в тази секция срещнахме доста примери на декларирани свойства с метод за четене на стойността им, нека разгледаме още един пример за свойството "възраст" (Age), което е от тип int и е декларирано чрез поле в същия клас:


private int age; // Field declaration
public string Age // Property declaration
{
get { return this.age; } // Getter declaration
}

Става въпрос за възрастта на пустия помияр... :) полето в което се помни възрастта е int, но get-ера е деклариран като ... стринг. Кому е нужно това и защо трябва геттер да връща стринг от int поле? Само за да ми е гадно после при сметките? Или някъде ми се губи нещо фундаментално? Или просто е даден един пример ... колкото да има нещо?

 

P.S. Сега гледам и нататък... set-тера и той е стринг, а се ползва като чист инт:

private int age; // Field declaration
public string Age // Property declaration
{
get{ return this.age; }
set{ this.age = value; } // Setter declaration
}

Dog dogInstance = new Dog();
// ...
dogInstance.Age = 3; // Setter invocation

Да, знам че голяма част от типовете ще се конвертират безпроблемно и без аз да се грижа за това, но точно случая "стринг -> инт" май не е от тия ...




Отговори



0
Здравей, хубаво е, че си го забелязал това, според мен е печатна грешка. Това няма как да се компилира, дори VS ти го подчертава като грешно. Ако за в бъдеще срещнеш код, в който се съмняваш, пробвай да го компилираш с VS и виж резултата.

от pdrenovska (2196 точки)


0

Като начало смени в заглавието "Книгата на Наков за C#."  с "[BOOK]".

Относно въпроса - споко не се притеснвай не си в грешка ти - техническа е, наистна трябва да е int :)

А иначе те съветвам да прегледаш ето тази тема: правила.


от slavii (0 точки)