Loading...
ttitto avatar ttitto 1153 Точки

[Homework] OOP - Defining classes - Септември 2014

Понеже в този курс решенията на задачите търпят на широко обсъждане, което едва ли ще стане при проверката на домашни, мисля да споделям тук решенията си: Ето първото:

Persons

LaptopShop (ново условие)

PCCatalogue

SULS

Тагове:
22
C# OOP Basics 16/09/2014 21:33:12
vvulevv avatar vvulevv 51 Точки

А дали някой може да ми каже от къде ми идва проблемът в Задача 3. ? Ето линк.

П.П. Нещо се бъгна и без да искам публикувах този въпрос 3 пъти..

0
21/09/2014 21:59:16
Valleri avatar Valleri 304 Точки

Пускам и моето домашно по темата след многократно преправяне Homework
Надявам се да има желаещи да проверяват : )

0
Karlie avatar Karlie 438 Точки

Колеги, моля за малко помощ в разрешаването на една мистерия, че вече луднах!

Ето това ми е първото домашно: домашно . Да вземем за пример задачата Persons.

Получих коментар за него, гласящ, че не е правилно да слагам Property в конструкторите (this.Name = name), а трябва да слагам поле (this.name = name). Така, както съм го написала, не минавало през property-то и съответно нямало никаква валидация.

Добре, обаче преди да си пратя задачите съм си тествала валидацията - работи. Отварям пак домашното, пак тествам - работи. Сменям конструктора на this.name = name; etc., както препоръчва колегата, който е проверявал - валидацията НЕ работи! Примерно, мога да сложа празен низ за име и си ми печата празно пространство за име без проблем.

ОК, реших, че сигурно колегата нещо се е объркал и не е тествал. Получих обаче втори коментар за друго домашно със същата забележка. Почнах да преглеждам внимателно слайдовете - така е, в конструкторите там има само полета. Отворих си всичките домашни, и навсякъде, където имам валидация е все така - наобратно (с пропърти) работи, с поле - не. Всъщност, доколкото си спомням аз поначало започнах да ги правя в стил this.Name = name, защото иначе не тръгваха тея валидации.

Та въпросът ми е, има ли някой идея защо така при мен нещата се получават наобратно...

 

 

 

3
Tr00peR avatar Tr00peR 566 Точки

Абсолютно правилно си го разбрала и вярно го правиш.

Ако искаш да има валидация - в конструктура се слага пропърти.

Очевидно коментарите на домашните ти са неадкеватни. Даже моето предположение е, че може двете домашни да са се паднали на един човек (тъй като не са много колегите като цяло, които проверяват домашни толкова рано в курса), който просто си мисли че знае нещо, и дори не си прави труда да направи един елеметарен тест, който ще му покаже, че греши.

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

Поздрави!

3
ttitto avatar ttitto 1153 Точки

Карли, за да си по-спокойна, мога да потвърдя думите на Trooper. Имаш ли свойство, подаваш него в конструктора. Ако нямаш свойство, това означава, че полето ти трябва да е частно и само тогава подаваш него в конструктора.

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

За съжаление много малка част от проверките на домашни са адекватни. Точно затова и аз реших да си публикувам домашните във форума. Макар че вече попаднах на собственото си домашно, изкопирано до такава степен, че diff- checker не намира разлика. Но пък всички забележки, които получавам от тук са си точно на мястото.

3
01/10/2014 09:33:02
Karlie avatar Karlie 438 Точки

Мерси, Тито и Трупър, Не предполагах, че колегата е един и същ, защото двата коментара са твърде различни като синтаксис и граматика, но Тито е прав, че страшно малко хора проверяват на този етап... Да бях погледнаха вашите домашни, щях да си спестя време за още една задача, вместо да си ровичкам по моите решения и слайдове, ама се увлякох в дебъгването и не се сетих laughing Та благодаря на всички колеги, които си качват решенията тук!

1
a.polyanska avatar a.polyanska 107 Точки

Здравейте,

Виждам, че темата е от предишния випуск, но човек и добре да живее, минава в ниво 2 и в крайна сметка зацикля на ООП-то :) Та имам принципен въпрос, който ми изникна докато се борех с това домашно. Виждам, че при валидация на стринг в сетъра най-често се използва "string.IsNullOrEmpty(value)". В част от кодовете, които разглеждах обаче, използват "String.IsNullOrEmpty(value)" (с  главната буква за клас). Аз, честно казано, не мога да схвана логиката по интуиция и не мога да преценя кое би трябвало да е правилно. Когато тествам в моя код, работят и двата варианта. Някой може ли да ми обясни по-подробно кое и защо е правилното?

0
VenelinGrozev avatar VenelinGrozev 130 Точки

Ето отговор на въпроса ти :) Накратко - няма разлика.

2
velio84 avatar velio84 241 Точки

Ако стойността е стринг, може също да ползваш и

if (value == null)

{

}

не знам дали това е добър вариант или е по-добре да се ползва String.IsNullOrEmpty(value), но все пак е опция :)

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