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