[C# OOP}try-catch, if, while.. проверка от console.readline през друг клас - как?
пичове и дами - един въпрос:
https://github.com/galin-s/CSharpSamples/tree/master/Students
има ли вариант, в който за firstname и lastname от input в program да се направи проверка в student дали са null и, ако са - конзолата да ми вади съобщения "вкарай име", докато наистина взема, че вкарам име?
пробвах с while, do-while - цикълът сработва само веднъж, после си продължава с другите въпроси.
if-ът пък го пробвах за екссепшън - грам не го интересува въведено ли е нещо, или не - директно си изкарва изключение.
и с try-catch - същото.
изобщо - къде ми се губи връзката при console.readline, който шсе обработва в друг клас?
благодаря за вниманието и приятен уикенд
Моля те не го прави това ;)
http://pastebin.com/gv81E1bu - това ти е в Main Метода или нещо подобно.
В сетъра на обекта само проверяваш дали входа е верен ако не е верен хвърляш exception.
Сетъра е един метод, а един метод или трябва да си върши работата или да известява, че не може да си свърши работа(хвърляне на exception примерно), друг принцип който нарушаваш е, че един метод трябва да върши само едно нещо а в твоя случай сетъра се грижи както за валидация така и за взимане на инпут което не е добре, и допълнително създаваш голямо dependancy между обекта и конзолата, сиреч Student-a ти вече не работи без да има референция към конзолата, днес е конзолата която я имаш по подразбиране утре ще е нещо друго което няма да го имаш ей така :)
Console.WriteLine('Invalid player name'); иаваскрипт хас руинд ми :)
Тук сме на едно мение с колегата - "Моля те не прави това :)" - Ако този клас примерно ще се пълни с данни от файл, а не от конзолата? Написано по този начин е не само е обвързано с конзолата, но и с формата на данните (може примерно да поискаш да ги подаваш всичките данни на един ред ...)
добре, добре - трия го, само мир да има
правилно ли разбирам, че цялата идея да се лупва "опитай пак" е грешна?
не идеята а изпълнението в сетъра на обекта
Грешиш :)
Много често го има това с "Опитай пак" , но не се прави в setter. В конкретната задача това, което ти е дал колегата е ОК - цикъла да е в main класа.
Ние това което коментираме е къде да се направи конкретната проверка за дадена стойност с if или с try/catch който вика класа да си прави валидацията, но самия цикъл + четенето на входа при всички случаи е в главния клас.