Исходный код вики CLR via C# | Джеффри Рихтер

Версия 3.1 от Alexandr Fokin на 2020/08/09 22:10

Последние авторы
1
2 {{html}}
3 <html>
4
5 <head>
6 <meta http-equiv=Content-Type content="text/html; charset=windows-1251">
7 <meta name=Generator content="Microsoft Word 15 (filtered)">
8 <style>
9 <!--
10 /* Font Definitions */
11 @font-face
12 {font-family:Wingdings;
13 panose-1:5 0 0 0 0 0 0 0 0 0;}
14 @font-face
15 {font-family:"Cambria Math";
16 panose-1:2 4 5 3 5 4 6 3 2 4;}
17 @font-face
18 {font-family:"Calibri Light";
19 panose-1:2 15 3 2 2 2 4 3 2 4;}
20 @font-face
21 {font-family:"Segoe UI";
22 panose-1:2 11 5 2 4 2 4 2 2 3;}
23 /* Style Definitions */
24 p.MsoNormal, li.MsoNormal, div.MsoNormal
25 {margin-top:0cm;
26 margin-right:0cm;
27 margin-bottom:8.0pt;
28 margin-left:0cm;
29 line-height:107%;
30 font-size:11.0pt;
31 font-family:"Calibri",sans-serif;}
32 h1
33 {mso-style-link:"Заголовок 1 Знак";
34 margin-top:12.0pt;
35 margin-right:0cm;
36 margin-bottom:0cm;
37 margin-left:0cm;
38 margin-bottom:.0001pt;
39 line-height:107%;
40 page-break-after:avoid;
41 font-size:16.0pt;
42 font-family:"Calibri Light",sans-serif;
43 color:#2E74B5;
44 font-weight:normal;}
45 h2
46 {mso-style-link:"Заголовок 2 Знак";
47 margin-top:2.0pt;
48 margin-right:0cm;
49 margin-bottom:0cm;
50 margin-left:0cm;
51 margin-bottom:.0001pt;
52 line-height:107%;
53 page-break-after:avoid;
54 font-size:13.0pt;
55 font-family:"Calibri Light",sans-serif;
56 color:#2E74B5;
57 font-weight:normal;}
58 h3
59 {mso-style-link:"Заголовок 3 Знак";
60 margin-top:2.0pt;
61 margin-right:0cm;
62 margin-bottom:0cm;
63 margin-left:0cm;
64 margin-bottom:.0001pt;
65 line-height:107%;
66 page-break-after:avoid;
67 font-size:12.0pt;
68 font-family:"Calibri Light",sans-serif;
69 color:#1F4D78;
70 font-weight:normal;}
71 h4
72 {mso-style-link:"Заголовок 4 Знак";
73 margin-top:2.0pt;
74 margin-right:0cm;
75 margin-bottom:0cm;
76 margin-left:0cm;
77 margin-bottom:.0001pt;
78 line-height:107%;
79 page-break-after:avoid;
80 font-size:11.0pt;
81 font-family:"Calibri Light",sans-serif;
82 color:#2E74B5;
83 font-weight:normal;
84 font-style:italic;}
85 p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
86 {mso-style-link:"Текст выноски Знак";
87 margin:0cm;
88 margin-bottom:.0001pt;
89 font-size:9.0pt;
90 font-family:"Segoe UI",sans-serif;}
91 p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
92 {margin-top:0cm;
93 margin-right:0cm;
94 margin-bottom:8.0pt;
95 margin-left:36.0pt;
96 line-height:107%;
97 font-size:11.0pt;
98 font-family:"Calibri",sans-serif;}
99 p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
100 {margin-top:0cm;
101 margin-right:0cm;
102 margin-bottom:0cm;
103 margin-left:36.0pt;
104 margin-bottom:.0001pt;
105 line-height:107%;
106 font-size:11.0pt;
107 font-family:"Calibri",sans-serif;}
108 p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
109 {margin-top:0cm;
110 margin-right:0cm;
111 margin-bottom:0cm;
112 margin-left:36.0pt;
113 margin-bottom:.0001pt;
114 line-height:107%;
115 font-size:11.0pt;
116 font-family:"Calibri",sans-serif;}
117 p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
118 {margin-top:0cm;
119 margin-right:0cm;
120 margin-bottom:8.0pt;
121 margin-left:36.0pt;
122 line-height:107%;
123 font-size:11.0pt;
124 font-family:"Calibri",sans-serif;}
125 span.1
126 {mso-style-name:"Заголовок 1 Знак";
127 mso-style-link:"Заголовок 1";
128 font-family:"Calibri Light",sans-serif;
129 color:#2E74B5;}
130 span.2
131 {mso-style-name:"Заголовок 2 Знак";
132 mso-style-link:"Заголовок 2";
133 font-family:"Calibri Light",sans-serif;
134 color:#2E74B5;}
135 span.3
136 {mso-style-name:"Заголовок 3 Знак";
137 mso-style-link:"Заголовок 3";
138 font-family:"Calibri Light",sans-serif;
139 color:#1F4D78;}
140 span.4
141 {mso-style-name:"Заголовок 4 Знак";
142 mso-style-link:"Заголовок 4";
143 font-family:"Calibri Light",sans-serif;
144 color:#2E74B5;
145 font-style:italic;}
146 span.a
147 {mso-style-name:"Текст выноски Знак";
148 mso-style-link:"Текст выноски";
149 font-family:"Segoe UI",sans-serif;}
150 .MsoPapDefault
151 {margin-bottom:8.0pt;
152 line-height:107%;}
153 @page WordSection1
154 {size:595.3pt 841.9pt;
155 margin:36.0pt 36.0pt 36.0pt 36.0pt;}
156 div.WordSection1
157 {page:WordSection1;}
158 /* List Definitions */
159 ol
160 {margin-bottom:0cm;}
161 ul
162 {margin-bottom:0cm;}
163 -->
164 </style>
165
166 </head>
167
168 <body lang=RU>
169
170 <div class=WordSection1>
171
172 <h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
173 Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
174 </span></span>Часть I. Основы CLR</h1>
175
176 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
177 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
178 1. Модель выполнения кода в среде CLR</h2>
179
180 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
181 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компиляция
182 исходного кода в управляемые модули</h3>
183
184 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
185 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Объединение
186 управляемых модулей в сборку</h3>
187
188 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
189 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Загрузка
190 CLR</h3>
191
192 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
193 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Исполнение
194 кода сборки </h3>
195
196 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
197 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
198 </span></span>IL-код и верификация</h4>
199
200 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
201 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
202 </span></span>Небезопасный код</h4>
203
204 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
205 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
206 </span></span>IL и защита интеллектуальной собственности</h4>
207
208 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
209 style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
210 </span></span><span lang=EN-US>NGen.exe</span></h3>
211
212 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
213 style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
214 </span></span>Библиотека <span lang=EN-US>FCL </span></h3>
215
216 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
217 style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
218 </span></span><span lang=EN-US>CTS</span></h3>
219
220 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
221 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>CLS</h3>
222
223 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
224 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Взаимодействие
225 с неуправляемым кодом</h3>
226
227 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
228 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
229 2. Компоновка, упаковка, развертывание и администрирование приложений и типов</h2>
230
231 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
232 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Задачи
233 развертывания в <span lang=EN-US>.</span>NET Framework</h3>
234
235 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
236 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компоновка
237 типов в модуль</h3>
238
239 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
240 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
241 </span></span>Файл параметров</h4>
242
243 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
244 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Несколько
245 слов о метаданных</h3>
246
247 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
248 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Объединение
249 модулей для создания сборки</h3>
250
251 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
252 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
253 </span></span>Добавление сборок в проект в среде Visual Studio</h4>
254
255 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
256 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
257 </span></span>Использование утилиты Assembly Linker</h4>
258
259 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
260 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
261 </span></span>Включение в сборку файлов ресурсов</h4>
262
263 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
264 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Ресурсы
265 со сведениями о версии сборки</h3>
266
267 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
268 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
269 </span></span>Номера версии</h4>
270
271 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
272 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Региональные
273 стандарты</h3>
274
275 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
276 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Развертывание
277 простых приложений (закрытое развертывание сборок)</h3>
278
279 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
280 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простое
281 средство администрирования (конфигурационный файл)</h3>
282
283 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
284 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
285 </span></span>Алгоритм поиска файлов сборки</h4>
286
287 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
288 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
289 3. Совместно используемые сборки и сборки со строгим именем</h2>
290
291 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
292 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Два
293 вида сборок — два вида развертывания</h3>
294
295 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
296 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Назначение
297 сборке строгого имени</h3>
298
299 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
300 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Глобальный
301 кэш сборок</h3>
302
303 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
304 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Построение
305 сборки, ссылающейся на сборку со строгим именем</h3>
306
307 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
308 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Устойчивость
309 сборок со строгими именами к несанкционированной модификации</h3>
310
311 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
312 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отложенное
313 подписание</h3>
314
315 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
316 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Закрытое
317 развертывание сборок со строгими именами</h3>
318
319 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
320 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
321 исполняющая среда разрешает ссылки на типы</h3>
322
323 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
324 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Дополнительные
325 административные средства (конфигурационные файлы)</h3>
326
327 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
328 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
329 </span></span>Управление версиями при помощи политики издателя</h4>
330
331 <h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
332 Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
333 </span></span>Часть II. Проектирование типов</h1>
334
335 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
336 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
337 4. Основы типов</h2>
338
339 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
340 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Все
341 типы — производные от System.Object</h3>
342
343 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
344 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приведение
345 типов</h3>
346
347 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
348 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
349 </span></span>Приведение типов в C# с помощью операторов is и as</h4>
350
351 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
352 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Пространства
353 имен и сборки</h3>
354
355 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
356 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
357 </span></span>Связь между сборками и пространством имен</h4>
358
359 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
360 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
361 разные компоненты взаимодействуют во время выполнения</h3>
362
363 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
364 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
365 5. Примитивные, ссылочные и значимые типы</h2>
366
367 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
368 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивные
369 типы в языках программирования</h3>
370
371 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
372 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
373 </span></span>Проверяемые и непроверяемые операции для примитивных типов</h4>
374
375 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
376 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Ссылочные
377 и значимые типы</h3>
378
379 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
380 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
381 </span></span>Как CLR управляет размещением полей для типа </h4>
382
383 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
384 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Упаковка
385 и распаковка значимых типов</h3>
386
387 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
388 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
389 </span></span>Изменение полей в упакованных значимых типах посредством интерфейсов
390 (и почему этого лучше не делать)</h4>
391
392 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
393 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
394 </span></span>Равенство и тождество объектов</h4>
395
396 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
397 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Хеш-коды
398 объектов</h3>
399
400 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
401 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивный
402 тип данных dynamic</h3>
403
404 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
405 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
406 6. Основные сведения о членах и типах</h2>
407
408 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
409 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Члены
410 типа</h3>
411
412 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
413 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Видимость
414 типа</h3>
415
416 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
417 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
418 </span></span>Дружественные сборки</h4>
419
420 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
421 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Доступ
422 к членам типов</h3>
423
424 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
425 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Статические
426 классы</h3>
427
428 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
429 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Частичные
430 классы, структуры и интерфейсы</h3>
431
432 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
433 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компоненты,
434 полиморфизм и версии</h3>
435
436 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
437 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
438 </span></span>Вызов виртуальных методов, свойств и событий в CLR</h4>
439
440 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
441 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
442 </span></span>Разумное использование видимости типов и модификаторов доступа к членам</h4>
443
444 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
445 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
446 </span></span>Работа с виртуальными методами при управлении версиями типов</h4>
447
448 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
449 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
450 7. Константы и поля</h2>
451
452 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
453 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Константы</h3>
454
455 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
456 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поля</h3>
457
458 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
459 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
460 8. Методы</h2>
461
462 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
463 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
464 экземпляров и классы (ссылочные типы)</h3>
465
466 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
467 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
468 экземпляров и структуры (значимые типы)</h3>
469
470 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
471 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
472 типов</h3>
473
474 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
475 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
476 перегруженных операторов</h3>
477
478 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
479 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
480 </span></span>Операторы и взаимодействие языков программирования</h4>
481
482 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
483 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
484 </span></span>Особое мнение автора о правилах Microsoft, связанных с именами методов
485 операторов</h4>
486
487 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
488 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
489 операторов преобразования</h3>
490
491 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
492 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
493 расширения</h3>
494
495 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
496 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
497 </span></span>Правила и рекомендации</h4>
498
499 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
500 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
501 </span></span>Расширение разных типов методами расширения</h4>
502
503 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
504 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
505 </span></span>Атрибут расширения</h4>
506
507 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
508 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Частичные
509 методы</h3>
510
511 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
512 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
513 </span></span>Правила и рекомендации</h4>
514
515 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
516 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
517 9. Параметры</h2>
518
519 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
520 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Необязательные
521 и именованные параметры</h3>
522
523 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
524 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
525 </span></span>Правила использования параметров.</h4>
526
527 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
528 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
529 </span></span>Атрибут DefaultParameterValue и необязательные атрибуты</h4>
530
531 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
532 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Неявно
533 типизированные локальные переменные</h3>
534
535 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
536 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
537 параметров в метод по ссылке</h3>
538
539 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
540 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
541 переменного количества аргументов</h3>
542
543 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
544 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Типы
545 параметров и возвращаемых значений</h3>
546
547 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
548 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Константность</h3>
549
550 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
551 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
552 10. Свойства</h2>
553
554 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
555 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Свойства
556 без параметров</h3>
557
558 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
559 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
560 </span></span>Автоматически реализуемые свойства</h4>
561
562 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
563 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
564 </span></span>Осторожный подход к определению свойств</h4>
565
566 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
567 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
568 </span></span>Свойства и отладчик Visual Studio</h4>
569
570 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
571 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
572 </span></span>Инициализаторы объектов и коллекций</h4>
573
574 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
575 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
576 </span></span>Анонимные типы</h4>
577
578 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
579 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
580 </span></span>Тип System.Tuple</h4>
581
582 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
583 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Свойства
584 с параметрами</h3>
585
586 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
587 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
588 </span></span>Выбор главного свойства с параметрами</h4>
589
590 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
591 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Производительность
592 при вызове методов доступа</h3>
593
594 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
595 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Доступность
596 методов доступа свойств</h3>
597
598 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
599 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
600 методы доступа свойств</h3>
601
602 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
603 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
604 11. События</h2>
605
606 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
607 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Разработка
608 типа, поддерживающего событие</h3>
609
610 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
611 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
612 1. Определение типа для хранения всей дополнительной информации, передаваемой получателям
613 уведомления о событии</h3>
614
615 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
616 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
617 2. Определение члена-события</h3>
618
619 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
620 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
621 3. Определение метода, ответственного за уведомление зарегистрированных объектов
622 о событии</h3>
623
624 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
625 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
626 4. Определение метода, преобразующего входную информацию в желаемое событие</h3>
627
628 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
629 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Реализация
630 событий компилятором</h3>
631
632 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
633 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
634 типа, отслеживающего событие</h3>
635
636 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
637 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Явное
638 управление регистрацией событий</h3>
639
640 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
641 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
642 12. Обобщения</h2>
643
644 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
645 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
646 в библиотеке FCL</h3>
647
648 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
649 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Инфраструктура
650 обобщений</h3>
651
652 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
653 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
654 </span></span>Открытые и закрытые типы</h4>
655
656 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
657 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
658 </span></span>Обобщенные типы и наследование</h4>
659
660 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
661 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
662 </span></span>Идентификация обобщенных типов</h4>
663
664 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
665 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
666 </span></span>Разрастание кода</h4>
667
668 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
669 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
670 интерфейсы</h3>
671
672 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
673 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
674 делегаты</h3>
675
676 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
677 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
678 </span></span>Контравариантные и ковариантные аргументы-типы в делегатах и интерфейсах</h4>
679
680 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
681 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
682 методы</h3>
683
684 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
685 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
686 </span></span>Обобщенные методы и выведение типов</h4>
687
688 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
689 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
690 и другие члены</h3>
691
692 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
693 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Верификация
694 и ограничения</h3>
695
696 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
697 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
698 </span></span>Основные ограничения</h4>
699
700 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
701 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
702 </span></span>Дополнительные ограничения</h4>
703
704 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
705 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
706 </span></span>Ограничения конструктора</h4>
707
708 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
709 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
710 </span></span>Другие проблемы верификации</h4>
711
712 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
713 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
714 13<span lang=EN-US>.</span><span lang=EN-US> </span>Интерфейсы</h2>
715
716 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
717 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Наследование
718 в классах и интерфейсах</h3>
719
720 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
721 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
722 интерфейсов</h3>
723
724 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
725 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Наследование
726 интерфейсов</h3>
727
728 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
729 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Подробнее
730 о вызовах интерфейсных методов</h3>
731
732 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
733 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Явные
734 и неявные реализации интерфейсных методов (что происходит за кулисами)</h3>
735
736 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
737 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
738 интерфейсы</h3>
739
740 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
741 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
742 и ограничения интерфейса</h3>
743
744 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
745 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Реализация
746 нескольких интерфейсов с одинаковыми сигнатурами и именами методов</h3>
747
748 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
749 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Совершенствование
750 безопасности типов за счет явной реализации интерфейсных методов</h3>
751
752 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
753 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Опасности
754 явной реализации интерфейсных методов</h3>
755
756 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
757 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Дилемма
758 разработчика: базовый класс или интерфейс?</h3>
759
760 <h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
761 Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
762 </span></span>Часть III. Основные типы данных</h1>
763
764 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
765 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
766 14. Символы, строки и обработка текста</h2>
767
768 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
769 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Символы</h3>
770
771 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
772 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Тип
773 System.String</h3>
774
775 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
776 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
777 </span></span>Создание строк</h4>
778
779 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
780 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
781 </span></span>Неизменяемые строки</h4>
782
783 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
784 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
785 </span></span>Сравнение строк</h4>
786
787 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
788 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
789 </span></span>Интернирование строк</h4>
790
791 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
792 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
793 </span></span>Создание пулов строк</h4>
794
795 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
796 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
797 </span></span>Работа с символами и текстовыми элементами в строке</h4>
798
799 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
800 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
801 </span></span>Прочие операции со строками</h4>
802
803 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
804 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Эффективное
805 создание строк</h3>
806
807 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
808 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
809 </span></span>Создание объекта StringBuilder</h4>
810
811 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
812 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
813 </span></span>Члены типа StringBuilder</h4>
814
815 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
816 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Получение
817 строкового представления объекта</h3>
818
819 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
820 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
821 </span></span>Форматы и региональные стандарты</h4>
822
823 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
824 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
825 </span></span>Форматирование нескольких объектов в одну строку</h4>
826
827 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
828 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
829 </span></span>Создание собственного средства форматирования</h4>
830
831 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
832 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Получение
833 объекта посредством разбора строки</h3>
834
835 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
836 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Кодировки:
837 преобразования между символами и байтами</h3>
838
839 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
840 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
841 </span></span>Кодирование и декодирование потоков символов и байтов</h4>
842
843 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
844 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
845 </span></span>Кодирование и декодирование строк в кодировке Base-64</h4>
846
847 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
848 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Защищенные
849 строки</h3>
850
851 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
852 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
853 15. Перечислимые типы и битовые флаги</h2>
854
855 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
856 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Перечислимые
857 типы</h3>
858
859 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
860 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Битовые
861 флаги</h3>
862
863 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
864 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Добавление
865 методов к перечислимым типам</h3>
866
867 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
868 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
869 16. Массивы</h2>
870
871 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
872 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Инициализация
873 элементов массива</h3>
874
875 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
876 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приведение
877 типов в массивах</h3>
878
879 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
880 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Базовый
881 класс System Array</h3>
882
883 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
884 style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
885 </span></span>Реализация интерфейсов <span lang=EN-US>IEnumerable, ICollection </span>и
886 <span lang=EN-US>IList</span></h3>
887
888 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
889 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
890 и возврат массивов</h3>
891
892 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
893 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Массивы
894 с ненулевой нижней границей</h3>
895
896 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
897 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Внутренняя
898 реализация массивов</h3>
899
900 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
901 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Небезопасный
902 доступ к массивам и массивы фиксированного размера</h3>
903
904 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
905 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
906 17. Делегаты</h2>
907
908 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
909 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Знакомство
910 с делегатами</h3>
911
912 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
913 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
914 вызов статических методов</h3>
915
916 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
917 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
918 вызов экземплярных методов</h3>
919
920 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
921 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Тонкости
922 использования делегатов</h3>
923
924 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
925 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
926 вызов нескольких методов (цепочки делегатов)</h3>
927
928 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
929 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
930 </span></span>Поддержка цепочек делегатов в C#</h4>
931
932 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
933 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
934 </span></span>Дополнительные средства управления цепочками делегатов</h4>
935
936 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
937 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
938 делегаты</h3>
939
940 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
941 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Упрощенный
942 синтаксис работы с делегатами</h3>
943
944 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
945 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
946 </span></span>Упрощение 1: не создаем объект делегата</h4>
947
948 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
949 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
950 </span></span>Упрощение 2: не определяем метод обратного вызова</h4>
951
952 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
953 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
954 </span></span>Упрощение 3: не создаем обертку для локальных переменных для передачи
955 их методу обратного вызова</h4>
956
957 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
958 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Делегаты
959 и отражение</h3>
960
961 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
962 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
963 18. Настраиваемые атрибуты</h2>
964
965 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
966 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сфера
967 применения настраиваемых атрибутов</h3>
968
969 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
970 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
971 класса атрибутов</h3>
972
973 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
974 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструктор
975 атрибута и типы данных полей и свойств</h3>
976
977 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
978 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выявление
979 настраиваемых атрибутов</h3>
980
981 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
982 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сравнение
983 экземпляров атрибута</h3>
984
985 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
986 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выявление
987 настраиваемых атрибутов без создания объектов, производных от Attribute</h3>
988
989 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
990 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Условные
991 атрибуты</h3>
992
993 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
994 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
995 19. Null-совместимые значимые типы</h2>
996
997 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
998 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поддержка
999 в C# null-совместимых значимых типов</h3>
1000
1001 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1002 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Оператор
1003 объединения null-совместимых значений</h3>
1004
1005 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1006 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поддержка
1007 в CLR null-совместимых значимых типов</h3>
1008
1009 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1010 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1011 </span></span>Упаковка null-совместимых значимых типов</h4>
1012
1013 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1014 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1015 </span></span>Распаковка null-совместимых значимых типов</h4>
1016
1017 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1018 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1019 </span></span>Вызов метода GetType через null-совместимый значимый тип</h4>
1020
1021 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1022 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1023 </span></span>Вызов интерфейсных методов через null-совместимый  значимый тип</h4>
1024
1025 <h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
1026 Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1027 </span></span>Часть IV. Ключевые механизмы</h1>
1028
1029 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1030 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1031 20. Исключения и управление состоянием 496</h2>
1032
1033 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1034 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
1035 «исключения»</h3>
1036
1037 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1038 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Механика
1039 обработки исключений</h3>
1040
1041 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1042 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1043 </span></span>Блок try</h4>
1044
1045 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1046 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1047 </span></span>Блок catch</h4>
1048
1049 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1050 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1051 </span></span>Блок finally</h4>
1052
1053 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1054 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1055 </span></span>CLS-совместимые и CLS-несовместимые исключения</h4>
1056
1057 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1058 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Класс
1059 System<span lang=EN-US>.</span>Exception</h3>
1060
1061 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1062 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Классы
1063 исключений, определенные в FCL</h3>
1064
1065 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1066 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Генерирование
1067 исключений</h3>
1068
1069 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1070 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
1071 классов исключений</h3>
1072
1073 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1074 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Продуктивность
1075 вместо надежности</h3>
1076
1077 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1078 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приемы
1079 работы с исключениями</h3>
1080
1081 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1082 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1083 </span></span>Активно используйте блоки finally</h4>
1084
1085 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1086 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1087 </span></span>Не надо перехватывать все исключения</h4>
1088
1089 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1090 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1091 </span></span>Корректное восстановление после исключения</h4>
1092
1093 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1094 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отмена
1095 незавершенных операций при невосстановимых исключениях</h3>
1096
1097 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1098 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сокрытие
1099 деталей реализации для сохранения контракта</h3>
1100
1101 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1102 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Необработанные
1103 исключения</h3>
1104
1105 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1106 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отладка
1107 исключений</h3>
1108
1109 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1110 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Скорость
1111 обработки исключений</h3>
1112
1113 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1114 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Области
1115 ограниченного выполнения</h3>
1116
1117 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1118 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контракты
1119 кода</h3>
1120
1121 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1122 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1123 21. Автоматическое управление памятью (уборка мусора)</h2>
1124
1125 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1126 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управляемая
1127 куча</h3>
1128
1129 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1130 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1131 </span></span>Выделение ресурсов из управляемой кучи</h4>
1132
1133 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1134 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1135 </span></span>Алгоритм уборки мусора</h4>
1136
1137 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1138 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1139 </span></span>Уборка мусора и отладка</h4>
1140
1141 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1142 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поколения</h3>
1143
1144 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1145 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1146 </span></span>Запуск уборки мусора</h4>
1147
1148 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1149 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1150 </span></span>Большие объекты</h4>
1151
1152 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1153 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1154 </span></span>Режимы уборки мусора</h4>
1155
1156 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1157 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1158 </span></span>Программное управление уборщиком мусора</h4>
1159
1160 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1161 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1162 </span></span>Мониторинг использования памяти приложением</h4>
1163
1164 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1165 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Освобождение
1166 ресурсов при помощи механизма финализации</h3>
1167
1168 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1169 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1170 </span></span>Типы, использующие системные ресурсы</h4>
1171
1172 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1173 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1174 </span></span>Интересные аспекты зависимостей</h4>
1175
1176 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1177 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1178 </span></span>Другие возможности уборщика мусора для работы с системными ресурсами</h4>
1179
1180 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1181 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1182 </span></span>Внутренняя реализация финализации</h4>
1183
1184 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1185 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Мониторинг
1186 и контроль времени жизни объектов</h3>
1187
1188 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1189 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1190 22. Хостинг CLR и домены приложений</h2>
1191
1192 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1193 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Хостинг
1194 CLR</h3>
1195
1196 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1197 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Домены
1198 приложений</h3>
1199
1200 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1201 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1202 </span></span>Доступ к объектам из других доменов</h4>
1203
1204 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1205 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выгрузка
1206 доменов</h3>
1207
1208 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1209 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Мониторинг
1210 доменов</h3>
1211
1212 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1213 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Уведомление
1214 о первом управляемом исключении домена</h3>
1215
1216 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1217 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Использование
1218 хостами доменов приложений</h3>
1219
1220 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1221 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1222 </span></span>Исполняемые приложения</h4>
1223
1224 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1225 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1226 </span></span>Полнофункциональные интернет-приложения Silverlight</h4>
1227
1228 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1229 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1230 </span></span>Microsoft ASPNET и веб-службы XML</h4>
1231
1232 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1233 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1234 </span></span>Microsoft SQL Server</h4>
1235
1236 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1237 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1238 </span></span>Будущее и мечты</h4>
1239
1240 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1241 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Нетривиальное
1242 управление хостингом</h3>
1243
1244 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1245 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1246 </span></span>Применение управляемого кода</h4>
1247
1248 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1249 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1250 </span></span>Разработка надежных хост-приложений</h4>
1251
1252 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1253 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1254 </span></span>Возвращение потока в хост</h4>
1255
1256 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1257 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1258 23. Загрузка сборок и отражение</h2>
1259
1260 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1261 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Загрузка
1262 сборок</h3>
1263
1264 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1265 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Использование
1266 отражения для создания динамически расширяемых приложений</h3>
1267
1268 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1269 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Производительность
1270 отражения</h3>
1271
1272 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1273 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1274 </span></span>Нахождение типов, определенных в сборке</h4>
1275
1276 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1277 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1278 </span></span>Объект Type</h4>
1279
1280 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1281 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1282 </span></span>Создание иерархии типов, производных от Exception</h4>
1283
1284 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1285 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1286 </span></span>Создание экземпляра типа</h4>
1287
1288 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1289 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
1290 приложений с поддержкой подключаемых компонентов</h3>
1291
1292 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1293 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1294 </span></span>Нахождение членов типа путем отражения</h4>
1295
1296 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1297 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1298 </span></span>Нахождение членов типа</h4>
1299
1300 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1301 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1302 </span></span>Обращение к членам типов</h4>
1303
1304 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1305 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1306 </span></span>Использование дескрипторов привязки для снижения потребления памяти
1307 процессом</h4>
1308
1309 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1310 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1311 24. Сериализация</h2>
1312
1313 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1314 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Практический
1315 пример сериализации/десериализации</h3>
1316
1317 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1318 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализуемые
1319 типы</h3>
1320
1321 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1322 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управление
1323 сериализацией и десериализацией</h3>
1324
1325 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1326 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализация
1327 экземпляров типа</h3>
1328
1329 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1330 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управление
1331 сериализованными и десериализованными данными</h3>
1332
1333 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1334 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1335 </span></span>Определение типа, реализующего интерфейс ISerializable, не реализуемый
1336 базовым классом</h4>
1337
1338 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1339 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контексты
1340 потока ввода-вывода</h3>
1341
1342 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1343 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализация
1344 в другой тип и десериализация в другой объект</h3>
1345
1346 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1347 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Суррогаты
1348 сериализации</h3>
1349
1350 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1351 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1352 </span></span>Цепочка селекторов суррогатов</h4>
1353
1354 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1355 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Переопределение
1356 сборки и/или типа при десериализации объекта</h3>
1357
1358 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1359 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1360 25. Взаимодействие с компонентами WinRT</h2>
1361
1362 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1363 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Проекции
1364 уровня CLR и правила системы типов компонентов WinRT</h3>
1365
1366 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1367 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1368 </span></span>Основные концепции системы типов WinRT</h4>
1369
1370 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1371 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Проекции
1372 уровня .NET Framework</h3>
1373
1374 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1375 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1376 </span></span>Асинхронные вызовы WinRT API из кода  NET</h4>
1377
1378 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1379 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1380 </span></span>Взаимодействия между потоками WinRT и потоками  NET</h4>
1381
1382 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1383 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1384 </span></span>Передача блоков данных между CLR и WinRT</h4>
1385
1386 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1387 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
1388 компонентов WinRT в коде C#</h3>
1389
1390 <h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
1391 Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1392 </span></span>Часть V. Многопоточность</h1>
1393
1394 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1395 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1396 26. Потоки исполнения</h2>
1397
1398 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1399 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1400 </span></span>Для чего Windows поддерживает потоки?</h4>
1401
1402 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1403 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1404 </span></span>Ресурсоемкость потоков</h4>
1405
1406 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1407 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1408 </span></span>Так дальше не пойдет!</h4>
1409
1410 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1411 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1412 </span></span>Тенденции развития процессоров</h4>
1413
1414 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1415 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1416 </span></span>CLR- и Windows-потоки</h4>
1417
1418 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1419 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1420 </span></span>Потоки для асинхронных вычислительных операций</h4>
1421
1422 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1423 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1424 </span></span>Причины использования потоков</h4>
1425
1426 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1427 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1428 </span></span>Планирование и приоритеты потоков</h4>
1429
1430 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1431 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1432 </span></span>Фоновые и активные потоки</h4>
1433
1434 <h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1435 Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1436 </span></span>Что дальше?</h4>
1437
1438 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1439 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1440 27. Асинхронные вычислительные операции</h2>
1441
1442 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1443 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Пул
1444 потоков в CLR</h3>
1445
1446 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1447 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простые
1448 вычислительные операции</h3>
1449
1450 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1451 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контексты
1452 исполнения</h3>
1453
1454 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1455 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Скоординированная
1456 отмена</h3>
1457
1458 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1459 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Задания</h3>
1460
1461 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1462 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1463 </span></span>Завершение задания и получение результата</h4>
1464
1465 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1466 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1467 </span></span>Отмена задания</h4>
1468
1469 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1470 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1471 </span></span>Автоматический запуск задания по завершении предыдущего </h4>
1472
1473 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1474 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1475 </span></span>Дочерние задания</h4>
1476
1477 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1478 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1479 </span></span>Структура задания</h4>
1480
1481 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1482 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1483 </span></span>Фабрики заданий</h4>
1484
1485 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1486 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1487 </span></span>Планировщики заданий</h4>
1488
1489 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
1490 style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1491 </span></span>Методы <span lang=EN-US>For, ForEach </span>и <span lang=EN-US>Invoke
1492 </span>класса <span lang=EN-US>Parallel</span></h3>
1493
1494 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1495 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Встроенный
1496 язык параллельных запросов</h3>
1497
1498 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1499 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Периодические
1500 вычислительные операции </h3>
1501
1502 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1503 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1504 </span></span>Разновидности таймеров</h4>
1505
1506 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1507 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
1508 пул управляет потоками</h3>
1509
1510 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1511 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1512 </span></span>Ограничение количества потоков в пуле</h4>
1513
1514 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1515 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1516 </span></span>Управление рабочими потоками</h4>
1517
1518 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1519 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1520 28. Асинхронные операции ввода-вывода</h2>
1521
1522 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1523 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Операции
1524 ввода-вывода в Windows</h3>
1525
1526 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1527 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1528 функции C#</h3>
1529
1530 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1531 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Преобразование
1532 асинхронной функции в конечный автомат</h3>
1533
1534 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1535 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Расширяемость
1536 асинхронных функций</h3>
1537
1538 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1539 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1540 функции и обработчики событий</h3>
1541
1542 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1543 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1544 функции в FCL</h3>
1545
1546 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1547 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1548 функции и исключения</h3>
1549
1550 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1551 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Другие
1552 возможности асинхронных функций</h3>
1553
1554 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1555 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Потоковые
1556 модели приложений</h3>
1557
1558 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1559 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронная
1560 реализация сервера</h3>
1561
1562 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1563 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отмена
1564 операций ввода-вывода</h3>
1565
1566 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1567 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1568 </span></span>Некоторые операции ввода-вывода должны выполняться синхронно</h4>
1569
1570 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1571 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1572 </span></span>Проблемы FileStream</h4>
1573
1574 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1575 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приоритеты
1576 запросов ввода-вывода</h3>
1577
1578 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1579 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1580 29. Примитивные конструкции синхронизации потоков</h2>
1581
1582 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1583 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Библиотеки
1584 классов и безопасность потоков</h3>
1585
1586 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1587 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивные
1588 конструкции пользовательского режима </h3>
1589
1590 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1591 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>и режима
1592 ядра</h3>
1593
1594 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1595 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкции
1596 пользовательского режима</h3>
1597
1598 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1599 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1600 </span></span>Volatile-конструкции</h4>
1601
1602 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1603 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1604 </span></span>Interlocked-конструкции</h4>
1605
1606 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1607 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1608 </span></span>Реализация простой циклической блокировки</h4>
1609
1610 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1611 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1612 </span></span>Универсальный Interlocked-паттерн</h4>
1613
1614 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1615 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкции
1616 режима ядра</h3>
1617
1618 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1619 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1620 </span></span>События</h4>
1621
1622 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1623 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1624 </span></span>Семафоры</h4>
1625
1626 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1627 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1628 </span></span>Мьютексы</h4>
1629
1630 <h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1631 "Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1632 30. Гибридные конструкции синхронизации потоков</h2>
1633
1634 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1635 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простая
1636 гибридная блокировка</h3>
1637
1638 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1639 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Зацикливание,
1640 владение потоком и рекурсия</h3>
1641
1642 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1643 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Гибридные
1644 конструкции в FCL</h3>
1645
1646 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1647 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1648 </span></span>Классы ManualResetEventSlim и SemaphoreSlim</h4>
1649
1650 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1651 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1652 </span></span>Класс Monitor и блоки синхронизации</h4>
1653
1654 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1655 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1656 </span></span>Класс ReaderWriterLockSlim</h4>
1657
1658 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1659 style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1660 </span></span>Класс <span lang=EN-US>OneManyLock</span></h4>
1661
1662 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1663 style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1664 </span></span>Класс <span lang=EN-US>CountdownEvent</span></h4>
1665
1666 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1667 style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1668 </span></span>Класс <span lang=EN-US>Barrier</span></h4>
1669
1670 <h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1671 Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1672 </span></span>Выводы по гибридным конструкциям</h4>
1673
1674 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1675 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Блокировка
1676 с двойной проверкой</h3>
1677
1678 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1679 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Паттерн
1680 условной переменной</h3>
1681
1682 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1683 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронная
1684 синхронизация</h3>
1685
1686 <h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1687 Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Классы
1688 коллекций для параллельного доступа</h3>
1689
1690 </div>
1691
1692 </body>
1693
1694 </html>
1695
1696 {{/html}}