Loading...
TihomirDimov avatar TihomirDimov 161 Точки

Изпит C# OOP Basics 10 07 2016 - System Split

Здравейте,

Потроших маса време по тази задача. Проблемът е, че пропъртитата MemoryConsumption и CapacityConsumption в клас LightSoftware не приемат стойности, калкулирани по формулата, а директно стойностите от конструктора. При другите три подобни класа логиката работи перфектно.

Моля за помощ. Ще се радвам да оцените и кода

ЦЪК за кода

Тагове:
0
C# OOP Basics
vancho avatar vancho 430 Точки

Ами ти така си му задал да приема стойностите от конструктура. Уточни се какво по-точно искаш?

-1
TihomirDimov avatar TihomirDimov 161 Точки

Здравей, благодаря за отговора. Може ли повече детайли, защото не мога да си видя точно грешката. Целта ми е стойността на пропъртито да се калкулрата след като се вземе формулата от конструктора + или - част от тази стойност в зависимост memory или capacity

0
vancho avatar vancho 430 Точки

Ами тогава изкарай сетването на пропъртито извън конструктора! Може в отделен метод примерно. Ама то така или иначе си взима стойността, след като изпълни формулата. Като цяло мисля, че не е добра практика да правиш това в конструктора.

-1
03/09/2016 20:15:16
vancho avatar vancho 430 Точки

ТУК НЯМА КАК ДА СЕТНЕШ int capacityConsumption, int memoryConsumption В КОНСТРУКТОРА

namespace _20160710.Models
{
    public class LightSoftware : Software
    {
        public LightSoftware(string hardware, string name, int capacityConsumption, int memoryConsumption) : base(hardware, name)
        {
            this.CapacityConsumption = capacityConsumption + (int)(capacityConsumption / 100 * 50);
            this.MemoryConsumption = memoryConsumption - (int)(memoryConsumption / 100 * 50);
            this.Type = "Light";
        }
    }
}

 

ЗАЩОТО ТУК ГЛАВНИЯ ТИ КЛАС НИКЪДЕ НЕ ПРИЕМА  int capacityConsumption, int memoryConsumption, и няма как да се сетнат!!!!!!

namespace _20160710.Models
{
    public class Software : Component
    {
        public Software(string hardware, string name) : base(name)
        {
            this.Hardware = hardware;
        }
        public int CapacityConsumption { get; set; }
        public int MemoryConsumption { get; set; }
        public string Hardware { get; set; }
    }
}

-1
Raskolnikov avatar Raskolnikov 102 Точки

Направи си класа Software абстрактен, приеми си чрез него мемори и капасити, пропъртитата ги направи virtual, а в класовете, които наследяват Software можеш да override-неш самите пропъртита със съответната логика.

Също така пробвай да смениш формулата:

this.CapacityConsumption = capacityConsumption + capacityConsumption / 2;
this.MemoryConsumption = memoryConsumption - memoryConsumption / 2;

 

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