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