Loading...
mihayloff14 avatar mihayloff14 824 Точки

[OOP] OOP Sample Exam- 01.Furniture - Material type enum?

Здравейте,

В момента се занимавам с примерния изпит по ООП - OOP Exam и по-конкретно с първата задача от изпита.

Разгледам скелета на задачата и забелязвам, че в нея присъства енумерация MaterialType, която би трябвало да служи за класа Furniture - property-то му Material. Но виждам, че в интерфейса за класа, въпросното property е от тип string, а в Engine-а на програмата са декларирани три константни стринга относно типа на материала, които отговарят на имената от енумерацията.

Та, въпросът ми е каква точно е идеята? В методите на Engine-а да подаваме като параметър за типа на материала string и да го превръщаме в енумерация въпреки че по този начин въпросното property в класа няма да е от тип стринг. 

Наистина съм озадачен и ще се радвам на малко прояснение. ^^

Тагове:
0
C# OOP Basics 22/02/2015 21:01:46
Valleri avatar Valleri 304 Точки

Спомням си, че я бях решил както ти си описал в предположението си и всичко си работеше наред и нямах забележка от проверяващ. Да, трябва да се превърне от стринг в енум.

0
a_rusenov avatar a_rusenov 1103 Точки

Предполагам учудването ти идва от това, че материалът се вкарва от factory-то като енумерация, пък пропъртито на Furniture връща стринг? Това е така, защото имплементира интерфейса IFurniture и трябва да се съобрази с него.

Със сигурност е по-добре IFurniture да използва и той енумерацията, но по условие този интерфес дефинира string Material и ние нямаме право да го редактираме.

1
mihayloff14 avatar mihayloff14 824 Точки

Да реално се поогледах из кода, който ни беше даден и наистина property-тата подавани са си стрингове, а метода, за който споменах служи един вид като валидация на подадените параметри. Оправих се с проблема по следния начин:

GetMaterialType(materialType).ToString()

materialType е стринга, който е подаден. Метода връща енумерация, която превръщам в стринг и използвам по-нататък.

Благодаря за помощта. ^^

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