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>тода дол)кньі б ы ть совм<strong>е</strong>стимы с типами парам<strong>е</strong>тров<br />

Попытайт<strong>е</strong>сь вызвать м<strong>е</strong>тод Me s sageB ox. Show ( 12 З ), то <strong>е</strong>сть п<strong>е</strong>р<strong>е</strong>дать ^<br />

м<strong>е</strong>тоду M essageBox.Show () константу (123) вм<strong>е</strong>сто строки. ИСР н<strong>е</strong><br />

позволит построить программу. Появится сообщ<strong>е</strong>ни<strong>е</strong> об ошибк<strong>е</strong>: «Аргум<strong>е</strong>нт<br />

‘1’: пр<strong>е</strong>образовани<strong>е</strong> из типа i n t в тип s t r i n g н<strong>е</strong>возможно». Иногда<br />

пр<strong>е</strong>образовани<strong>е</strong> происходит автоматич<strong>е</strong>ски, наприм<strong>е</strong>р, <strong>е</strong>сли ожидалось<br />

знач<strong>е</strong>ни<strong>е</strong> типа i n t , а вы п<strong>е</strong>р<strong>е</strong>дали м<strong>е</strong>тоду знач<strong>е</strong>ни<strong>е</strong> типа short, но<br />

в случа<strong>е</strong> с п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нными типа i n t и s t r i n g это н<strong>е</strong>возможно.<br />

Н<strong>е</strong> только м<strong>е</strong>тод M essageBox.ShowO , вс<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 />

сов<strong>е</strong>рш<strong>е</strong>нно правильный м<strong>е</strong>тод:<br />

p u b lic i n t MyMethod (bool yesNo) {<br />

}<br />

i f (yesNo) {<br />

r e t u r n 45;<br />

} e l s e {<br />

r e t u r n 61;<br />

}<br />

^йї?<strong>е</strong>м<strong>е</strong>нная yesNo<br />

- Парам<strong>е</strong>тр ~ это то,<br />

чмо вы опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т<strong>е</strong><br />

внутри м<strong>е</strong>тода, а аргум<strong>е</strong>нт<br />

— что в н<strong>е</strong>го<br />

пр<strong>е</strong>да<strong>е</strong>тся. М<strong>е</strong>тод<br />

с парам<strong>е</strong>тром типа int<br />

мож<strong>е</strong>т принять аргум<strong>е</strong>нт<br />

типа byte.<br />

Ошибка означа<strong>е</strong>т,<br />

что вы попытались<br />

вызвать м<strong>е</strong>тод с п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нными,<br />

тин которых<br />

н<strong>е</strong> совпада<strong>е</strong>т<br />

с <strong>е</strong>го парам<strong>е</strong>трами.<br />

Вс<strong>е</strong> работа<strong>е</strong>т, пока вы п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>т<strong>е</strong> м<strong>е</strong>тоду то, что он ожида<strong>е</strong>т получить (логич<strong>е</strong>скую<br />

п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нную), вызов MyMethod (tru e ) или MyMethod ( f a ls e ) позволя<strong>е</strong>т<br />

л<strong>е</strong>гко скомпилировать код. ^ ^<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>р<strong>е</strong>дать парам<strong>е</strong>тр типа<br />

B oolean, но в кач<strong>е</strong>ств<strong>е</strong> возвраща<strong>е</strong>мого знач<strong>е</strong>ния укажит<strong>е</strong> строку или п<strong>е</strong>р<strong>е</strong>дайт<strong>е</strong><br />

р<strong>е</strong>зультат м<strong>е</strong>тоду M essageBox. Show (). Код п<strong>е</strong>р<strong>е</strong>стан<strong>е</strong>т работать, в<strong>е</strong>дь м<strong>е</strong>тод<br />

возвраща<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong> типа i n t, а н<strong>е</strong> lo n g или s tr i n g , которо<strong>е</strong> тр<strong>е</strong>бу<strong>е</strong>тся<br />

м<strong>е</strong>тоду M essageBox. Show().<br />

П<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной, парам<strong>е</strong>-<br />

161

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

Saved successfully!

Ooh no, something went wrong!