14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!