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 />

Модификатор out<br />

С ущ <strong>е</strong>ствую т различны <strong>е</strong> сп о со б ы п о л уч<strong>е</strong>ния зн а ч <strong>е</strong> н и й о т п р о гр а м м ы . О н и р<strong>е</strong>ализую<br />

тся п р и п о м о щ и д о б а вл<strong>е</strong>нны х к объя вл<strong>е</strong>нию м <strong>е</strong>тода модификаторов,<br />

в ч а с тн о с ти , м одиф и ка то р а out. В о т как о н работа<strong>е</strong>т. С оздайт<strong>е</strong> ново<strong>е</strong> п р и ­<br />

л о ж <strong>е</strong> н и <strong>е</strong> W indow s Form s и добавьт<strong>е</strong> к ф орм <strong>е</strong> пусто<strong>е</strong> объявл<strong>е</strong>ни<strong>е</strong> м<strong>е</strong>тода. О ба<br />

парам <strong>е</strong>тра пом <strong>е</strong>тьт<strong>е</strong> кл ю ч <strong>е</strong>вы м словом o u t:<br />

p u b l i c i n t R e t u r n T h r e e V a l u e s (out d o u b le h a l f , out i n t t w i c e )<br />

}<br />

r e t u r n 1 ;<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>вым<br />

словом out, ‘h alf должно быть присво<strong>е</strong>но знач<strong>е</strong>ни<strong>е</strong> (а н а л о ги ч н о для<br />

парам <strong>е</strong>тра ‘tw ic e ’ ). Работая с кл ю ч <strong>е</strong> вы м словом o u t , вы вс<strong>е</strong>гдад,олж<strong>е</strong>к задавать<br />

парам <strong>е</strong>тр до возвращ <strong>е</strong>ния м <strong>е</strong>тодом знач<strong>е</strong>ния. В о т как в ы гл я д и т м <strong>е</strong>тод ц <strong>е</strong>ликом:<br />

R andom ra n d o m = new R a n d o m ( ) ;<br />

Парам<strong>е</strong>тр out<br />

да<strong>е</strong>т м<strong>е</strong>тоду<br />

возможность<br />

в<strong>е</strong>рнуть бол<strong>е</strong><strong>е</strong><br />

одного<br />

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

p u b l i c i n t R e t u r n T h r e e V a lu e s ( o u t d o u b le h a l f , o u t i n t t w ic e ) {<br />

i n t v a lu e = r a n d o m .N e x t( 1 0 0 0 ) ;<br />

}<br />

h a l f = ( ( d o u b le ) v a lu e ) / 2 ;<br />

t w ic e - v a lu e * 2 ;<br />

r e t u r n v a lu e ;<br />

Пt арам <strong>е</strong>т рам Ul/V\J , e пом<strong>е</strong>ч<strong>е</strong>нным ГЧ./V ключ<strong>е</strong>вым<br />

r V /C - U C « '! /V i<br />

/ 'Д Л К Л Д Л ^ f .-i- --Ч ^ ..........<br />

словом out. нужно заран<strong>е</strong><strong>е</strong> присвоит ь<br />

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

н<strong>е</strong> буд<strong>е</strong>т. ^<br />

В оспользу<strong>е</strong>м ся заданны м и парам <strong>е</strong>трам и. Д обавьт<strong>е</strong> к н о п к у со сл<strong>е</strong>дую щ им о б р а б о тч и ко м со б ы тий:<br />

p r i v a t e v o i d b u t t o n l _ C l i c k ( o b j e c t s e n d e r , E v e n tA r g s e ) {<br />

d o u b le b ;<br />

i n t c ;<br />

a = R e t u r n T h r e e V a lu e s ( b , c)<br />

C o n s o le . W r it e L in e ( " v a l u e = {0}, h a l f = { 1 } , d o u b le = {2}",<br />

b , c ) ;<br />

О и ! С нова о ш и б к и п о стр о <strong>е</strong> н и я ; Аргум<strong>е</strong>нт 1 д о л ж <strong>е</strong> н быть п<strong>е</strong>р<strong>е</strong>дан с к л ю ч <strong>е</strong> в ы м словом out. В п р о ц <strong>е</strong> с­<br />

с<strong>е</strong> вы зова м <strong>е</strong>тода с парам <strong>е</strong>тром o u t н у ж н о исп ользовать это клю ч<strong>е</strong>во<strong>е</strong> слово п р и п<strong>е</strong>р<strong>е</strong>дач<strong>е</strong> <strong>е</strong>му аргум<strong>е</strong>нта.<br />

В о т ка к э то д о л ж н о вы гляд<strong>е</strong>ть:<br />

^ ^ j<br />

а = R e t u r n T h r e e V a lu e s (out b , out с ) ;<br />

Т <strong>е</strong>п<strong>е</strong>рь п р о гр а м м у м о ж н о п о с т р о и т ь и запустить. М <strong>е</strong> то д R e tu r n T h r e e V a lu e s () зада<strong>е</strong>т и возвращ а<strong>е</strong>т<br />

т р и знач<strong>е</strong>ния: а получа<strong>е</strong>т возвращ а<strong>е</strong>м о<strong>е</strong> зн ач<strong>е</strong>ни<strong>е</strong> м<strong>е</strong>тода, Ь - знач<strong>е</strong>ни<strong>е</strong>, возвращ а<strong>е</strong>мо<strong>е</strong> парам <strong>е</strong>тром<br />

h a l f , а с - знач<strong>е</strong>ни<strong>е</strong>, возвращ а<strong>е</strong>мо<strong>е</strong> парам <strong>е</strong>тром t w i c e . ^<br />

654 глава 14

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

Saved successfully!

Ooh no, something went wrong!