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

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

)‘^<strong>е</strong>ш<strong>е</strong>ни<strong>е</strong><br />

В о т как вы глядит сортировка случайного н аб ора карт.<br />

Если X им<strong>е</strong><strong>е</strong>тл<br />

оольш<strong>е</strong><strong>е</strong> знач<strong>е</strong>ни<strong>е</strong>,<br />

м<strong>е</strong>илод возвра -<br />

ща<strong>е</strong>т 1 . Если<br />

знач<strong>е</strong>ни<strong>е</strong> м<strong>е</strong>ньш<strong>е</strong>,<br />

оозЬраща<strong>е</strong>тся<br />

-!■ Но оба оп<strong>е</strong>ратора,<br />

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

знач<strong>е</strong>ни<strong>е</strong>,<br />

зав<strong>е</strong>ршают<br />

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

c l a s s CardC om parer_byV alue : ICom parer { ^ ^ ‘^ Р ^ <strong>е</strong> н н ы и<br />

p u b l i c i n t Com pare(Card x , Card y) {<br />

(x .V a lu e < y .V a lu e ) {<br />

r e t u r n -1 ;<br />

(x .V a lu e > y .V a lu e ) {<br />

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

( x .S u i t < y . S u i t ) {<br />

r e t u r n -1 ;<br />

( x .S u i t > y . S u i t ) {<br />

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

}<br />

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

Э т и оп<strong>е</strong>раторы выполняются ^<br />

только при совпад<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> выполняются.<br />

s t a t i c v o i d M a i n ( s t r i n g [] a r g s)<br />

{<br />

Random random = new Random() ;<br />

C o n s o le . W r it e L in e ( "Пять случайных к а р т :" );<br />

L ist< C a rd > c a r d s = new L ist< C a rd > () ;<br />

f o r ( i n t i = 0; i < 5; i++ )<br />

{<br />

}<br />

c a rd s.A d d (n e w C a r d ( ( S u it s ) r a n d o m .N e x t ( 4 ) ,<br />

C o n s o le .W r it e L in e ( c a r d s [ i] .N a m e ) ;<br />

(V a lu e s )r a n d o m .N e x t(1 , 1 4 ) ) ) ;<br />

Это обобщ<strong>е</strong>нная<br />

колл<strong>е</strong>кция объ<strong>е</strong>ктов<br />

Card. Е<strong>е</strong> л<strong>е</strong>гко сортировать<br />

с помощью<br />

инт<strong>е</strong>рф<strong>е</strong>йса<br />

IComparer.<br />

C o n s o le . W r it e L in e ( );<br />

364 глава 8<br />

C o n s o le .W r it e L in e ( "Т<strong>е</strong> ж<strong>е</strong> карты, отсор ти р ов ан н ы <strong>е</strong>:" );<br />

c a r d s . S o r t(n e w C ardC om parer_byV alu e( ) ) ;<br />

f o r e a c h (Card c a r d i n c a r d s)<br />

{<br />

C o n so le .W r ite L in e (c a r d .N a m e )<br />

}<br />

C o n so le .R e a d K e y 0 ; < ..........<br />

М<strong>е</strong>тод Console.ReadKeyO нуж<strong>е</strong>н, чтобы программа<br />

н<strong>е</strong> закрывалась посл<strong>е</strong> зав<strong>е</strong>рш<strong>е</strong>ния. Для<br />

р<strong>е</strong>альных прилож<strong>е</strong>ний он н<strong>е</strong> подходит. При запуск<strong>е</strong><br />

программы по Ctrl-F5 она начина<strong>е</strong>т работать<br />

б<strong>е</strong>з отладки. Посл<strong>е</strong> зав<strong>е</strong>рш<strong>е</strong>ния появля<strong>е</strong>тся<br />

строка Press any key to continue... и прилож<strong>е</strong>ни<strong>е</strong><br />

жд<strong>е</strong>т нажатия клавиши. Но отладки н<strong>е</strong> происходит,<br />

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

н<strong>е</strong> работают.

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

Saved successfully!

Ooh no, something went wrong!