. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
часвдо<br />
З а д а в а <strong>е</strong> м ы <strong>е</strong><br />
БоЦ|эос;ь1<br />
это вс<strong>е</strong>го лишь код<br />
Вс<strong>е</strong>гда ли оп<strong>е</strong>ратор принадл<strong>е</strong>жит к какому-нибудь классу?<br />
Г ! Да. Вс<strong>е</strong> оп<strong>е</strong>раторы принадл<strong>е</strong>жат к опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нным кпассам,<br />
точно такж<strong>е</strong> как вс<strong>е</strong> классы, в свою оч<strong>е</strong>р<strong>е</strong>дь, принадл<strong>е</strong>жат пространствам<br />
им<strong>е</strong>н. Когда вы использу<strong>е</strong>т<strong>е</strong> конструктор для задания<br />
свойств объ<strong>е</strong>ктов формы, мож<strong>е</strong>т показаться, что н<strong>е</strong>которы<strong>е</strong> оп<strong>е</strong>раторы<br />
находятся вн<strong>е</strong> классов. Но внимат<strong>е</strong>льно<strong>е</strong> рассмотр<strong>е</strong>ни<strong>е</strong><br />
кода показыва<strong>е</strong>т, что на самом д<strong>е</strong>л<strong>е</strong> это н<strong>е</strong> так.<br />
Сущ<strong>е</strong>ствуют ли пространства им<strong>е</strong>н, которы<strong>е</strong> я н<strong>е</strong> могу<br />
использовать? А как насч<strong>е</strong>т т<strong>е</strong>х, которы<strong>е</strong> я обязан использовать?<br />
Q l Да, н<strong>е</strong>которы<strong>е</strong> пространства им<strong>е</strong>н использовать н<strong>е</strong> р<strong>е</strong>ком<strong>е</strong>нду<strong>е</strong>тся,<br />
наприм<strong>е</strong>р, пространство им<strong>е</strong>н System . Им<strong>е</strong>нно там<br />
находятся S y stem .D a ta , позволяющий работать с таблицами<br />
и базами данных, и S y stem , ю , об<strong>е</strong>сп<strong>е</strong>чивающий работу<br />
с файлами и потоками данных. Но по больш<strong>е</strong>й части вы мож<strong>е</strong>т<strong>е</strong><br />
называть пространства им<strong>е</strong>н, как вам нравится. Или отдать это на<br />
откуп ИСР, которая буд<strong>е</strong>т автоматич<strong>е</strong>ски создавать им<strong>е</strong>на, взяв за<br />
основу имя программы.<br />
Б<br />
! А вс<strong>е</strong>-таки, зач<strong>е</strong>м нужно ключ<strong>е</strong>во<strong>е</strong> слово partial?<br />
( 1 ; Оно позволя<strong>е</strong>т распр<strong>е</strong>д<strong>е</strong>лять код одного класса м<strong>е</strong>жду разными<br />
файлами. При создании формы, ИСР сохраня<strong>е</strong>т р<strong>е</strong>дактиру<strong>е</strong>мый<br />
вами код в файл (к прим<strong>е</strong>ру, F o rm l. cs), а автоматич<strong>е</strong>ски модифициру<strong>е</strong>мый<br />
— в файл (Forml . D e s ig n e r . cs). Но оба они находятся<br />
в одном пространств<strong>е</strong> им<strong>е</strong>н. Достаточно объявить пространство<br />
им<strong>е</strong>н в в<strong>е</strong>рхн<strong>е</strong>й части файла, и <strong>е</strong>му буд<strong>е</strong>т принадл<strong>е</strong>жать вс<strong>е</strong>, что<br />
попада<strong>е</strong>т в фигурны<strong>е</strong> скобки, располож<strong>е</strong>нны<strong>е</strong> ниж<strong>е</strong>. При этом в одном<br />
файл<strong>е</strong> могут находится объ<strong>е</strong>кгы из разных пространств им<strong>е</strong>н<br />
и разных классов. Но об этом мы поговорим в сл<strong>е</strong>дующ<strong>е</strong>й глав<strong>е</strong>.<br />
Что происходит с кодом, который был автоматич<strong>е</strong>ски<br />
создан ИСР, <strong>е</strong>сли воспользоваться командой Undo?<br />
^ ; Попробуйт<strong>е</strong>, и вы сами найд<strong>е</strong>т<strong>е</strong> отв<strong>е</strong>т на этот вопрос! П<strong>е</strong>р<strong>е</strong>тащит<strong>е</strong><br />
на форму кнопку и пом<strong>е</strong>няйт<strong>е</strong> <strong>е</strong><strong>е</strong> свойства. А зат<strong>е</strong>м воспользуйт<strong>е</strong>сь<br />
командой отм<strong>е</strong>ны. Вы увидит<strong>е</strong>, что в простых случаях<br />
ИСР просто возвраща<strong>е</strong>т вас в пр<strong>е</strong>дьщущую точку. Но при попытк<strong>е</strong><br />
отм<strong>е</strong>нить вставку в базу данных SQL появится окно с пр<strong>е</strong>дупр<strong>е</strong>жд<strong>е</strong>ни<strong>е</strong>м,<br />
что посл<strong>е</strong> отм<strong>е</strong>ны оп<strong>е</strong>рации вы н<strong>е</strong> смож<strong>е</strong>т<strong>е</strong> отм<strong>е</strong>нить сво<strong>е</strong><br />
р<strong>е</strong>ш<strong>е</strong>ни<strong>е</strong> командой Redo.<br />
Насколько внимат<strong>е</strong>льно нужно относится к автоматич<strong>е</strong>ски<br />
создава<strong>е</strong>мому коду?<br />
! Относит<strong>е</strong>сь к н<strong>е</strong>му достаточно внимат<strong>е</strong>льно. Нужно понимать<br />
соотв<strong>е</strong>тстви<strong>е</strong> м<strong>е</strong>жду кодом и вашими д<strong>е</strong>йствиями, чтобы при н<strong>е</strong>обходимости<br />
им<strong>е</strong>ть возможность отр<strong>е</strong>дактировать <strong>е</strong>го вручную.<br />
Впроч<strong>е</strong>м, в подавляющ<strong>е</strong>м большинств<strong>е</strong> случа<strong>е</strong>в вс<strong>е</strong> н<strong>е</strong>обходимы<strong>е</strong><br />
изм<strong>е</strong>н<strong>е</strong>ния можно прод<strong>е</strong>лать с помощью ИСР.<br />
■<br />
КЛЮЧЕВЫЕ<br />
МОМЕНТЫ<br />
Вашу программу заставляют работать оп<strong>е</strong>раторы,<br />
которы<strong>е</strong> вс<strong>е</strong>гда принадл<strong>е</strong>жат к какому-либо<br />
классу. Класс ж<strong>е</strong>, в свою оч<strong>е</strong>р<strong>е</strong>дь, находится<br />
в каком-то пространств<strong>е</strong> им<strong>е</strong>н.<br />
■ В конц<strong>е</strong> оп<strong>е</strong>раторов стоит знак (;).<br />
■<br />
■<br />
■<br />
■<br />
■<br />
■<br />
В отв<strong>е</strong>т на ваши д<strong>е</strong>йствия Visual Studio автоматич<strong>е</strong>ски<br />
добавля<strong>е</strong>т в программу код.<br />
Блоки кода, таки<strong>е</strong> как классы, цикл w h i l e , оп<strong>е</strong>раторы<br />
if/else и многи<strong>е</strong> други<strong>е</strong> виды оп<strong>е</strong>раторов<br />
заключаются в фигурны<strong>е</strong> скобки { }.<br />
Р<strong>е</strong>зультатом пров<strong>е</strong>рки условия явля<strong>е</strong>тся знач<strong>е</strong>ни<strong>е</strong><br />
t r u e или f a l s e . С <strong>е</strong>го помощью опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>тся,<br />
буд<strong>е</strong>т ли законч<strong>е</strong>н цикл, а такж<strong>е</strong> какой<br />
им<strong>е</strong>нно блок кода буд<strong>е</strong>т р<strong>е</strong>ализован в оп<strong>е</strong>ратор<strong>е</strong><br />
if/else.<br />
Для хран<strong>е</strong>ния данных используются п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нны<strong>е</strong>.<br />
Оп<strong>е</strong>ратор = присваива<strong>е</strong>т п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной знач<strong>е</strong>ни<strong>е</strong>,<br />
а оп<strong>е</strong>ратор == сравнива<strong>е</strong>т знач<strong>е</strong>ния двух<br />
п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нных.<br />
Цикл w h i l e выполня<strong>е</strong>т вс<strong>е</strong> оп<strong>е</strong>раторы в фигурных<br />
скобках, пока р<strong>е</strong>зультатом пров<strong>е</strong>рки условия<br />
явля<strong>е</strong>тся знач<strong>е</strong>ни<strong>е</strong> t r u e .<br />
Как только пров<strong>е</strong>рка условия да<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong><br />
f a l s e , цикл w h i l e пр<strong>е</strong>краща<strong>е</strong>т работу, и программа<br />
п<strong>е</strong>р<strong>е</strong>ходит к оп<strong>е</strong>ратору, располож<strong>е</strong>нному<br />
сразу посл<strong>е</strong> цикла.<br />
дальш<strong>е</strong> > 105