14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

созда<strong>е</strong>м м<strong>е</strong>тоды и р<strong>е</strong>дактиру<strong>е</strong>м маршруты<br />

М<strong>е</strong>тоды прокладки и р<strong>е</strong>дактирования маршрутов<br />

Класс Navigator сод<strong>е</strong>ржит м<strong>е</strong>тоды, которы<strong>е</strong> выполняют вс<strong>е</strong> д<strong>е</strong>йствия. В отличи<strong>е</strong><br />

от уж<strong>е</strong> знакомых вам м<strong>е</strong>тодов button_Click () они р<strong>е</strong>шают другую задачу:<br />

прокладывают маршрут по городу. Им<strong>е</strong>нно поэтому Майк пом<strong>е</strong>стил эти м<strong>е</strong>тоды<br />

в <strong>е</strong>диный класс и присвоил <strong>е</strong>му имя Navigator.<br />

Для опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>ния маршрута сначала вызыва<strong>е</strong>тся м<strong>е</strong>тод SetDestination (), указывающий<br />

кон<strong>е</strong>чную точку, зат<strong>е</strong>м прим<strong>е</strong>ня<strong>е</strong>тся м<strong>е</strong>тод GetRoute (), выводящий<br />

маршрут в вид<strong>е</strong> символьной строки. Если маршрут тр<strong>е</strong>бу<strong>е</strong>тся изм<strong>е</strong>нить, на помощь<br />

приходит м<strong>е</strong>тод ModifyRouteToAvoidO , позволяющий изб<strong>е</strong>жать опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нных<br />

улиц. Зат<strong>е</strong>м м<strong>е</strong>тод GetRoute {) выводит новый вариант маршрута.<br />

class Navigator {<br />

Мйык выбира<strong>е</strong>т<br />

для м<strong>е</strong>тодов<br />

значимы<strong>е</strong> им<strong>е</strong>на.<br />

public void SetCurrentLocation(string locationName) {<br />

ptiblic void SetDestination (string destinationName) { , } ;<br />

public void ModifyRouteToAvoid(string streetName) { ... };<br />

public (string GetRoute 0 { ... };<br />

вм вровд<strong>е</strong>« 3 „ „ e " L ,<br />

М <strong>е</strong>тоды, возвращающи<strong>е</strong> знач<strong>е</strong>ни<strong>е</strong><br />

string route =<br />

GetRoute {);<br />

М<strong>е</strong>тоды состоят из оп<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> принадл<strong>е</strong>жит к опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нному типу (наприм<strong>е</strong>р,<br />

s t r i n g или in t) .<br />

Оп<strong>е</strong>ратор r e t u r n пр<strong>е</strong>рыва<strong>е</strong>т работу м<strong>е</strong>тода. Если м<strong>е</strong>тод н<strong>е</strong> возвраща<strong>е</strong>т<br />

знач<strong>е</strong>ния, тип возвраща<strong>е</strong>мого знач<strong>е</strong>ния объявля<strong>е</strong>тся как v o id , присутстви<strong>е</strong><br />

этого оп<strong>е</strong>ратора явля<strong>е</strong>тся н<strong>е</strong>обязат<strong>е</strong>льным. Но <strong>е</strong>сли м<strong>е</strong>тод возвра-<br />

Вот прим<strong>е</strong>р м<strong>е</strong>тода,<br />

возвращающ<strong>е</strong>го ^<br />

знач<strong>е</strong>ни<strong>е</strong> типа int.<br />

М<strong>е</strong>тод использу<strong>е</strong>т<br />

два парам<strong>е</strong>тра<br />

для вычисл<strong>е</strong>ния<br />

р<strong>е</strong>зультата,<br />

а зат<strong>е</strong>м при помощи<br />

оп<strong>е</strong>ратора return<br />

п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong><br />

X вызвавил<strong>е</strong>му <strong>е</strong>го<br />

ща<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong>, б<strong>е</strong>з оп<strong>е</strong>ратора r e t u r n н<strong>е</strong> обойтись. i / оп<strong>е</strong>ратору<br />

p u b l i c i n t M u ltip ly T w o N u m b ers(in t fir s tN u m b e r , i n t secondNum ber) {<br />

i n t r e s u l t = fir s tN u m b e r * secondN um ber;<br />

r e t u r n r e s u l t ;<br />

Оп<strong>е</strong>ратор вызыва<strong>е</strong>т м<strong>е</strong>тод, п<strong>е</strong>р<strong>е</strong>множающий два числа. Возвраща<strong>е</strong>мо<strong>е</strong><br />

знач<strong>е</strong>ни<strong>е</strong> принадл<strong>е</strong>жит к типу int:<br />

i n t m y R esu lt = M u ltip lyT w oN u m b ers(3, 5 );<br />

В м <strong>е</strong> т о Э ь ! м о ж н о<br />

п о д с т а в л я т )^ н<strong>е</strong><br />

' только константы,<br />

но 1А п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>ним.<br />

118 глава 3

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

Saved successfully!

Ooh no, something went wrong!