. Стиллмен, Дж. Грин - Изучаем 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 />
1Н2НИ2<br />
<strong>е</strong> ш ш <strong>е</strong><br />
выглядит код программы Excuse Manager посл<strong>е</strong> р<strong>е</strong>дактирования.<br />
8 форм<strong>е</strong> тр<strong>е</strong>бу<strong>е</strong>тся отр<strong>е</strong>дактировать только три оп<strong>е</strong>ратора: два в обработчик<strong>е</strong><br />
событии кнопки Save и один для кнопки Open, они м<strong>е</strong>няют расилир<strong>е</strong>ни<strong>е</strong><br />
(раилоб и задают имя, под которым файлы сохраняются по умолчанию<br />
p r i v a t e v o i d s a v e _ C l i c k ( o b j e c t se n d e r , E v en tA rg s e) {<br />
// с у щ <strong>е</strong> с т в у ю щ и й к о д<br />
saveFileDialogl.Filter = "Excuse files (*.excuse)|*.excuse<br />
saveFileDialogl.FileName = description.Text + ".excuse";<br />
// с у щ <strong>е</strong> с т в у ю щ и й к о д<br />
}<br />
p r i v a t e v o id o p e n _ C lic k ( o b j e c t<br />
// с у щ <strong>е</strong> с т в у ю щ и й к о д<br />
openFileDialogl.Filter =<br />
"Excuse files (».excuse)I*.<br />
// с у щ <strong>е</strong> с т в у ю щ и й к о д<br />
}<br />
s e n d e r , E v en tA rg s e) {<br />
excuse|All files (*.*}!*.*")<br />
Это код вс<strong>е</strong>го класса Excuse.<br />
[ S e r i a l i z a b l e ]<br />
c l a s s E x cu se {<br />
p u b l i c s t r i n g D e s c r i p t i o n { g e t ; s e t ;<br />
p u b l i c s t r i n g R e s u lt s { g e t ; s e t ■ }<br />
p u b l i c D ateT im e L a stU se d { g e t ; s e t ;<br />
p u b l i c s t r i n g E x c u se P a th { g e t ; s e t ;<br />
p u b l i c E x cu se 0 {<br />
E x c u se P a th =<br />
}<br />
p u b l i c E x c u s e ( s t r i n g e x c u se P a th )<br />
O p e n F ile ( e x c u s e P a t h ) ;<br />
}<br />
All files<br />
( * . * ) I* .* » ;<br />
Ч д т и с ч о л о з з к » « «<br />
} 1 и о т о р л я онй<br />
p u b l i c Excuse(R andom random, s t r i n g f o l d e r ) {<br />
s t r i n g [ ] file N a m e s = D i r e c t o r y . G e t F i l e s ( f o l d e r , " * .e x c u se " )<br />
O p e n F ile ( f ile N a m e s [ r a n d o m .N e x t ( f ile N a m e s .L e n g t h ) ] ) ;<br />
}<br />
p r i v a t e v o i d O p e n F il e ( s t r in g e x c u se P a th ) {<br />
t h i s .E x c u s e P a t h = e x c u s e P a th ;<br />
B in a r y F o r m a tte r f o r m a t t e r = new B in a r y F o r m a tte r () ;<br />
E x cu se tem p E xcuse;<br />
u s in g (Stream in p u t = F ile .O p e n R e a d ( e x c u s e P a t h ) ) {<br />
^ tem p E xcuse = ( E x c u s e ) f o r m a t t e r .D e s e r i a l iz e ( i n p u t )<br />
}<br />
D e s c r i p t i o n = t e m p E x c u s e .D e s c r ip t io n ;<br />
R e s u lt s = t e m p E x c u s e .R e s u lts ;<br />
L a stU se d = te m p E x c u se . L a stU sed ;<br />
{<br />
Конструктор, загружаюш,ий<br />
случайны<strong>е</strong><br />
оправдания, т<strong>е</strong>п<strong>е</strong>рь<br />
ищ<strong>е</strong>т расшир<strong>е</strong>ни<strong>е</strong><br />
.excuse вм<strong>е</strong>сто расшир<strong>е</strong>ния<br />
*.txt.<br />
p u b l i c v o i d S a v e ( s t r i n g file N a m e ) {<br />
B in a r y F o r m a tte r f o r m a t t e r = new B in a r y F o r m a tte r ( );<br />
u s in g (Stream o u tp u t = File.O per^Jjsifee (file N a m e ) ) {<br />
f o r m a t t e r . S e r i a l i z e (o u tp u t, ( t h i s ) ) ; у и a<br />
} ^ ------С - X Ключ<strong>е</strong>во<strong>е</strong> слово this т ут ф игуриj<br />
ру<strong>е</strong>т , так как тр<strong>е</strong>бу<strong>е</strong>тся с<strong>е</strong>риалы -<br />
зооать им<strong>е</strong>нно эт от класс.<br />
448 глава 9