Loading...
ambiorix avatar ambiorix 640 Точки

Използване на overriden property за модифицане на друго property от същия клас наследник

Здравейте.

В предна инстанция на курса чух, че е по-правилно ако искаме да променим някое свойство на клас наследник (например да го увеличим с 50%) то е по-добре да се направи въпросното свойство виртуално в бащиния клас и да се презапише в наследника. Нямах проблем с това когато се налага да се направи с константа, но как е правилно да се направи ако текущото свойство зависи от друго свойство на същия клас?

 

Ето тук например(от последния изпит) ми трябва EnergyRequirement да го разделя на SonicFactor като и двете са свойства на клас SonicHarvester който наследява Harvester: https://github.com/gaydov/Softuni-OOP-Basics/blob/master/Exams/Exam-16th-July-2017/HarvestersModels/SonicHarvester.cs

 

Не успях да го направя, защото SonicFactor все още няма стойност и винаги деля на 0.

 

Ето имплементацията когато просто се ползва константа: https://github.com/gaydov/Softuni-OOP-Basics/blob/master/Exams/Exam-16th-July-2017/HarvestersModels/HammerHarvester.cs

 

Та как е най-правилно да се направи това и изобщо възможно ли е да е по-добрия начин с презаписване на EnergyRequirement по някакъв начин?

0
C# OOP Basics 19/07/2017 22:02:43
Tangrila avatar Tangrila 21 Точки

В условието пише при ИНИЦИАЛИЗАЦИЯ т.е. само първия път като му слагаш стойност. т.е. в КОНСТРУКТУРА.

0
Martin.T avatar Martin.T 35 Точки

Правилно бе колега питаме кое е равилно то ясно, че ще го намуаш в конструктора питаме как се прави кой са добрите практики etc .....

0
ambiorix avatar ambiorix 640 Точки

Абстрахирай се от условието. Задачата е дадена само за пример. Идеята е как генерално трябва да се прави.

0
Tangrila avatar Tangrila 21 Точки

:D Не си направих труда особено. Можеш да си маркираш на Мартин отговора за верен. Така се прави.

0
ambiorix avatar ambiorix 640 Точки

Ще изчакам още няколко дни ако още някой погледне казуса.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.