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.

со<strong>е</strong>диним вс<strong>е</strong> вм<strong>е</strong>ст<strong>е</strong><br />

пражн<strong>е</strong>ни<strong>е</strong><br />

П р и ш л о вр<strong>е</strong>м я прим <strong>е</strong>нить получ<strong>е</strong>нны <strong>е</strong> знания на практик<strong>е</strong>. В а м нужно<br />

закончить классы Ball и Pitcher, д о б ави ть класс Fan и уб<strong>е</strong>диться, что<br />

они р аб о таю т правильно.<br />

Зав<strong>е</strong>рш<strong>е</strong>ни<strong>е</strong> класса Pitcher.<br />

М<strong>е</strong>тоды CatchBall () и CoverFirstBase () должны выводить информацию<br />

о том, что защитник или ловит мяч или б<strong>е</strong>жит на п<strong>е</strong>рвую базу.<br />

class Pitcher {<br />

public Pitcher(Ball ball) {<br />

ball.BalllnPlay += new EventHandler(ball_BallInPlay);<br />

void ball_BallInPlay(object sender, EventArgs e) {<br />

if (e is BallEventArgs){<br />

BallEventArgs ballEventArgs = e as BallEventArgs;<br />

if ((ballEventArgs.Distance < 95) && (ballEventArgs.Trajectory < 60))<br />

CatchBall{);<br />

else<br />

CoverFirstBase0 ;<br />

^<br />

Эти два м<strong>е</strong>тода должны<br />

1 выводить р<strong>е</strong>зульт ат на<br />

консоль.<br />

О<br />

Создани<strong>е</strong> класса Fan.<br />

Конструктор класса Fan долж<strong>е</strong>н быть подписан на событи<strong>е</strong><br />

BalllnPlay. Его обработчик событий долж<strong>е</strong>н пров<strong>е</strong>рять, н<strong>е</strong><br />

пр<strong>е</strong>выша<strong>е</strong>т ли расстояни<strong>е</strong> 400 футов, а тра<strong>е</strong>ктория 30 (хоум-ран),<br />

и при пр<strong>е</strong>выш<strong>е</strong>нии знач<strong>е</strong>ний пытаться поймать мяч. В противном<br />

случа<strong>е</strong> бол<strong>е</strong>льщик кричит. Выв<strong>е</strong>дит<strong>е</strong> р<strong>е</strong>зультат на консоль.<br />

Хоум-ран — удар, при<br />

котором мяч прол<strong>е</strong>т а­<br />

<strong>е</strong>т вс<strong>е</strong> пол<strong>е</strong> и выл<strong>е</strong>та<strong>е</strong>т<br />

за <strong>е</strong>го пр<strong>е</strong>д<strong>е</strong>лы.<br />

Точный список вывода вы увидит<strong>е</strong><br />

на рисунк<strong>е</strong> на сл<strong>е</strong>дующ<strong>е</strong>й страниц<strong>е</strong>.<br />

Fan<br />

502 глава 11

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

Saved successfully!

Ooh no, something went wrong!