Изменения документа Оглавление

Редактировал(а) Alexandr Fokin 2022/12/12 12:01

От версии 1.1
отредактировано Alexandr Fokin
на 2022/12/12 11:59
Изменить комментарий: К данной версии нет комментариев
К версии 1.2
отредактировано Alexandr Fokin
на 2022/12/12 12:01
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,0 +1,2837 @@
1 +{{html clean="false"}}
2 +<html>
3 +
4 +<head>
5 +<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
6 +<meta name=Generator content="Microsoft Word 15 (filtered)">
7 +<style>
8 +<!--
9 + /* Font Definitions */
10 + @font-face
11 + {font-family:Wingdings;
12 + panose-1:5 0 0 0 0 0 0 0 0 0;}
13 +@font-face
14 + {font-family:"Cambria Math";
15 + panose-1:2 4 5 3 5 4 6 3 2 4;}
16 +@font-face
17 + {font-family:"Calibri Light";
18 + panose-1:2 15 3 2 2 2 4 3 2 4;}
19 +@font-face
20 + {font-family:"Segoe UI";
21 + panose-1:2 11 5 2 4 2 4 2 2 3;}
22 + /* Style Definitions */
23 + p.MsoNormal, li.MsoNormal, div.MsoNormal
24 + {margin-top:0cm;
25 + margin-right:0cm;
26 + margin-bottom:8.0pt;
27 + margin-left:0cm;
28 + line-height:107%;
29 + font-size:11.0pt;
30 + font-family:"Calibri",sans-serif;}
31 +h1
32 + {mso-style-link:"Заголовок 1 Знак";
33 + margin-top:12.0pt;
34 + margin-right:0cm;
35 + margin-bottom:0cm;
36 + margin-left:0cm;
37 + margin-bottom:.0001pt;
38 + line-height:107%;
39 + page-break-after:avoid;
40 + font-size:16.0pt;
41 + font-family:"Calibri Light",sans-serif;
42 + color:#2E74B5;
43 + font-weight:normal;}
44 +h2
45 + {mso-style-link:"Заголовок 2 Знак";
46 + margin-top:2.0pt;
47 + margin-right:0cm;
48 + margin-bottom:0cm;
49 + margin-left:0cm;
50 + margin-bottom:.0001pt;
51 + line-height:107%;
52 + page-break-after:avoid;
53 + font-size:13.0pt;
54 + font-family:"Calibri Light",sans-serif;
55 + color:#2E74B5;
56 + font-weight:normal;}
57 +h3
58 + {mso-style-link:"Заголовок 3 Знак";
59 + margin-top:2.0pt;
60 + margin-right:0cm;
61 + margin-bottom:0cm;
62 + margin-left:0cm;
63 + margin-bottom:.0001pt;
64 + line-height:107%;
65 + page-break-after:avoid;
66 + font-size:12.0pt;
67 + font-family:"Calibri Light",sans-serif;
68 + color:#1F4D78;
69 + font-weight:normal;}
70 +h4
71 + {mso-style-link:"Заголовок 4 Знак";
72 + margin-top:2.0pt;
73 + margin-right:0cm;
74 + margin-bottom:0cm;
75 + margin-left:0cm;
76 + margin-bottom:.0001pt;
77 + line-height:107%;
78 + page-break-after:avoid;
79 + font-size:11.0pt;
80 + font-family:"Calibri Light",sans-serif;
81 + color:#2E74B5;
82 + font-weight:normal;
83 + font-style:italic;}
84 +p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
85 + {mso-style-link:"Текст выноски Знак";
86 + margin:0cm;
87 + margin-bottom:.0001pt;
88 + font-size:9.0pt;
89 + font-family:"Segoe UI",sans-serif;}
90 +p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
91 + {margin-top:0cm;
92 + margin-right:0cm;
93 + margin-bottom:8.0pt;
94 + margin-left:36.0pt;
95 + line-height:107%;
96 + font-size:11.0pt;
97 + font-family:"Calibri",sans-serif;}
98 +p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
99 + {margin-top:0cm;
100 + margin-right:0cm;
101 + margin-bottom:0cm;
102 + margin-left:36.0pt;
103 + margin-bottom:.0001pt;
104 + line-height:107%;
105 + font-size:11.0pt;
106 + font-family:"Calibri",sans-serif;}
107 +p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
108 + {margin-top:0cm;
109 + margin-right:0cm;
110 + margin-bottom:0cm;
111 + margin-left:36.0pt;
112 + margin-bottom:.0001pt;
113 + line-height:107%;
114 + font-size:11.0pt;
115 + font-family:"Calibri",sans-serif;}
116 +p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
117 + {margin-top:0cm;
118 + margin-right:0cm;
119 + margin-bottom:8.0pt;
120 + margin-left:36.0pt;
121 + line-height:107%;
122 + font-size:11.0pt;
123 + font-family:"Calibri",sans-serif;}
124 +span.1
125 + {mso-style-name:"Заголовок 1 Знак";
126 + mso-style-link:"Заголовок 1";
127 + font-family:"Calibri Light",sans-serif;
128 + color:#2E74B5;}
129 +span.2
130 + {mso-style-name:"Заголовок 2 Знак";
131 + mso-style-link:"Заголовок 2";
132 + font-family:"Calibri Light",sans-serif;
133 + color:#2E74B5;}
134 +span.3
135 + {mso-style-name:"Заголовок 3 Знак";
136 + mso-style-link:"Заголовок 3";
137 + font-family:"Calibri Light",sans-serif;
138 + color:#1F4D78;}
139 +span.4
140 + {mso-style-name:"Заголовок 4 Знак";
141 + mso-style-link:"Заголовок 4";
142 + font-family:"Calibri Light",sans-serif;
143 + color:#2E74B5;
144 + font-style:italic;}
145 +span.a
146 + {mso-style-name:"Текст выноски Знак";
147 + mso-style-link:"Текст выноски";
148 + font-family:"Segoe UI",sans-serif;}
149 +.MsoPapDefault
150 + {margin-bottom:8.0pt;
151 + line-height:107%;}
152 +@page WordSection1
153 + {size:595.3pt 841.9pt;
154 + margin:36.0pt 36.0pt 36.0pt 36.0pt;}
155 +div.WordSection1
156 + {page:WordSection1;}
157 + /* List Definitions */
158 + ol
159 + {margin-bottom:0cm;}
160 +ul
161 + {margin-bottom:0cm;}
162 +-->
163 +</style>
164 +
165 +</head>
166 +
167 +<body lang=RU>
168 +
169 +<div class=WordSection1>
170 +
171 +<h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
172 +Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
173 +</span></span>Часть I. Основы CLR</h1>
174 +
175 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
176 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
177 +1. Модель выполнения кода в среде CLR</h2>
178 +
179 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
180 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компиляция
181 +исходного кода в управляемые модули</h3>
182 +
183 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
184 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Объединение
185 +управляемых модулей в сборку</h3>
186 +
187 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
188 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Загрузка
189 +CLR</h3>
190 +
191 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
192 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Исполнение
193 +кода сборки </h3>
194 +
195 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
196 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
197 +</span></span>IL-код и верификация</h4>
198 +
199 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
200 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
201 +</span></span>Небезопасный код</h4>
202 +
203 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
204 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
205 +</span></span>IL и защита интеллектуальной собственности</h4>
206 +
207 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
208 +style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
209 +</span></span><span lang=EN-US>NGen.exe</span></h3>
210 +
211 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
212 +style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
213 +</span></span>Библиотека <span lang=EN-US>FCL </span></h3>
214 +
215 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
216 +style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
217 +</span></span><span lang=EN-US>CTS</span></h3>
218 +
219 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
220 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>CLS</h3>
221 +
222 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
223 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Взаимодействие
224 +с неуправляемым кодом</h3>
225 +
226 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
227 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
228 +2. Компоновка, упаковка, развертывание и администрирование приложений и типов</h2>
229 +
230 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
231 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Задачи
232 +развертывания в <span lang=EN-US>.</span>NET Framework</h3>
233 +
234 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
235 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компоновка
236 +типов в модуль</h3>
237 +
238 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
239 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
240 +</span></span>Файл параметров</h4>
241 +
242 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
243 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Несколько
244 +слов о метаданных</h3>
245 +
246 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
247 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Объединение
248 +модулей для создания сборки</h3>
249 +
250 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
251 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
252 +</span></span>Добавление сборок в проект в среде Visual Studio</h4>
253 +
254 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
255 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
256 +</span></span>Использование утилиты Assembly Linker</h4>
257 +
258 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
259 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
260 +</span></span>Включение в сборку файлов ресурсов</h4>
261 +
262 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
263 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Ресурсы
264 +со сведениями о версии сборки</h3>
265 +
266 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
267 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
268 +</span></span>Номера версии</h4>
269 +
270 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
271 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Региональные
272 +стандарты</h3>
273 +
274 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
275 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Развертывание
276 +простых приложений (закрытое развертывание сборок)</h3>
277 +
278 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
279 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простое
280 +средство администрирования (конфигурационный файл)</h3>
281 +
282 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
283 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
284 +</span></span>Алгоритм поиска файлов сборки</h4>
285 +
286 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
287 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
288 +3. Совместно используемые сборки и сборки со строгим именем</h2>
289 +
290 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
291 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Два
292 +вида сборок — два вида развертывания</h3>
293 +
294 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
295 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Назначение
296 +сборке строгого имени</h3>
297 +
298 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
299 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Глобальный
300 +кэш сборок</h3>
301 +
302 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
303 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Построение
304 +сборки, ссылающейся на сборку со строгим именем</h3>
305 +
306 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
307 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Устойчивость
308 +сборок со строгими именами к несанкционированной модификации</h3>
309 +
310 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
311 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отложенное
312 +подписание</h3>
313 +
314 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
315 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Закрытое
316 +развертывание сборок со строгими именами</h3>
317 +
318 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
319 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
320 +исполняющая среда разрешает ссылки на типы</h3>
321 +
322 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
323 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Дополнительные
324 +административные средства (конфигурационные файлы)</h3>
325 +
326 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
327 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
328 +</span></span>Управление версиями при помощи политики издателя</h4>
329 +
330 +<h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
331 +Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
332 +</span></span>Часть II. Проектирование типов</h1>
333 +
334 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
335 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
336 +4. Основы типов</h2>
337 +
338 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
339 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Все
340 +типы — производные от System.Object</h3>
341 +
342 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
343 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приведение
344 +типов</h3>
345 +
346 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
347 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
348 +</span></span>Приведение типов в C# с помощью операторов is и as</h4>
349 +
350 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
351 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Пространства
352 +имен и сборки</h3>
353 +
354 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
355 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
356 +</span></span>Связь между сборками и пространством имен</h4>
357 +
358 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
359 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
360 +разные компоненты взаимодействуют во время выполнения</h3>
361 +
362 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
363 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
364 +5. Примитивные, ссылочные и значимые типы</h2>
365 +
366 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
367 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивные
368 +типы в языках программирования</h3>
369 +
370 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
371 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
372 +</span></span>Проверяемые и непроверяемые операции для примитивных типов</h4>
373 +
374 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
375 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Ссылочные
376 +и значимые типы</h3>
377 +
378 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
379 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
380 +</span></span>Как CLR управляет размещением полей для типа </h4>
381 +
382 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
383 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Упаковка
384 +и распаковка значимых типов</h3>
385 +
386 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
387 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
388 +</span></span>Изменение полей в упакованных значимых типах посредством интерфейсов
389 +(и почему этого лучше не делать)</h4>
390 +
391 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
392 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
393 +</span></span>Равенство и тождество объектов</h4>
394 +
395 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
396 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Хеш-коды
397 +объектов</h3>
398 +
399 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
400 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивный
401 +тип данных dynamic</h3>
402 +
403 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
404 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
405 +6. Основные сведения о членах и типах</h2>
406 +
407 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
408 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Члены
409 +типа</h3>
410 +
411 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
412 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Видимость
413 +типа</h3>
414 +
415 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
416 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
417 +</span></span>Дружественные сборки</h4>
418 +
419 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
420 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Доступ
421 +к членам типов</h3>
422 +
423 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
424 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Статические
425 +классы</h3>
426 +
427 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
428 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Частичные
429 +классы, структуры и интерфейсы</h3>
430 +
431 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
432 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Компоненты,
433 +полиморфизм и версии</h3>
434 +
435 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
436 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
437 +</span></span>Вызов виртуальных методов, свойств и событий в CLR</h4>
438 +
439 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
440 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
441 +</span></span>Разумное использование видимости типов и модификаторов доступа к членам</h4>
442 +
443 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
444 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
445 +</span></span>Работа с виртуальными методами при управлении версиями типов</h4>
446 +
447 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
448 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
449 +7. Константы и поля</h2>
450 +
451 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
452 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Константы</h3>
453 +
454 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
455 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поля</h3>
456 +
457 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
458 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
459 +8. Методы</h2>
460 +
461 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
462 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
463 +экземпляров и классы (ссылочные типы)</h3>
464 +
465 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
466 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
467 +экземпляров и структуры (значимые типы)</h3>
468 +
469 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
470 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкторы
471 +типов</h3>
472 +
473 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
474 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
475 +перегруженных операторов</h3>
476 +
477 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
478 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
479 +</span></span>Операторы и взаимодействие языков программирования</h4>
480 +
481 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
482 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
483 +</span></span>Особое мнение автора о правилах Microsoft, связанных с именами методов
484 +операторов</h4>
485 +
486 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
487 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
488 +операторов преобразования</h3>
489 +
490 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
491 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Методы
492 +расширения</h3>
493 +
494 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
495 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
496 +</span></span>Правила и рекомендации</h4>
497 +
498 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
499 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
500 +</span></span>Расширение разных типов методами расширения</h4>
501 +
502 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
503 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
504 +</span></span>Атрибут расширения</h4>
505 +
506 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
507 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Частичные
508 +методы</h3>
509 +
510 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
511 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
512 +</span></span>Правила и рекомендации</h4>
513 +
514 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
515 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
516 +9. Параметры</h2>
517 +
518 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
519 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Необязательные
520 +и именованные параметры</h3>
521 +
522 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
523 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
524 +</span></span>Правила использования параметров.</h4>
525 +
526 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
527 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
528 +</span></span>Атрибут DefaultParameterValue и необязательные атрибуты</h4>
529 +
530 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
531 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Неявно
532 +типизированные локальные переменные</h3>
533 +
534 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
535 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
536 +параметров в метод по ссылке</h3>
537 +
538 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
539 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
540 +переменного количества аргументов</h3>
541 +
542 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
543 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Типы
544 +параметров и возвращаемых значений</h3>
545 +
546 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
547 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Константность</h3>
548 +
549 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
550 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
551 +10. Свойства</h2>
552 +
553 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
554 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Свойства
555 +без параметров</h3>
556 +
557 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
558 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
559 +</span></span>Автоматически реализуемые свойства</h4>
560 +
561 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
562 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
563 +</span></span>Осторожный подход к определению свойств</h4>
564 +
565 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
566 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
567 +</span></span>Свойства и отладчик Visual Studio</h4>
568 +
569 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
570 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
571 +</span></span>Инициализаторы объектов и коллекций</h4>
572 +
573 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
574 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
575 +</span></span>Анонимные типы</h4>
576 +
577 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
578 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
579 +</span></span>Тип System.Tuple</h4>
580 +
581 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
582 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Свойства
583 +с параметрами</h3>
584 +
585 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
586 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
587 +</span></span>Выбор главного свойства с параметрами</h4>
588 +
589 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
590 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Производительность
591 +при вызове методов доступа</h3>
592 +
593 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
594 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Доступность
595 +методов доступа свойств</h3>
596 +
597 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
598 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
599 +методы доступа свойств</h3>
600 +
601 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
602 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
603 +11. События</h2>
604 +
605 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
606 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Разработка
607 +типа, поддерживающего событие</h3>
608 +
609 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
610 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
611 +1. Определение типа для хранения всей дополнительной информации, передаваемой получателям
612 +уведомления о событии</h3>
613 +
614 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
615 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
616 +2. Определение члена-события</h3>
617 +
618 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
619 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
620 +3. Определение метода, ответственного за уведомление зарегистрированных объектов
621 +о событии</h3>
622 +
623 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
624 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Этап
625 +4. Определение метода, преобразующего входную информацию в желаемое событие</h3>
626 +
627 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
628 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Реализация
629 +событий компилятором</h3>
630 +
631 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
632 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
633 +типа, отслеживающего событие</h3>
634 +
635 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
636 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Явное
637 +управление регистрацией событий</h3>
638 +
639 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
640 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
641 +12. Обобщения</h2>
642 +
643 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
644 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
645 +в библиотеке FCL</h3>
646 +
647 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
648 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Инфраструктура
649 +обобщений</h3>
650 +
651 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
652 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
653 +</span></span>Открытые и закрытые типы</h4>
654 +
655 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
656 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
657 +</span></span>Обобщенные типы и наследование</h4>
658 +
659 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
660 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
661 +</span></span>Идентификация обобщенных типов</h4>
662 +
663 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
664 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
665 +</span></span>Разрастание кода</h4>
666 +
667 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
668 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
669 +интерфейсы</h3>
670 +
671 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
672 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
673 +делегаты</h3>
674 +
675 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
676 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
677 +</span></span>Контравариантные и ковариантные аргументы-типы в делегатах и интерфейсах</h4>
678 +
679 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
680 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
681 +методы</h3>
682 +
683 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
684 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
685 +</span></span>Обобщенные методы и выведение типов</h4>
686 +
687 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
688 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
689 +и другие члены</h3>
690 +
691 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
692 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Верификация
693 +и ограничения</h3>
694 +
695 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
696 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
697 +</span></span>Основные ограничения</h4>
698 +
699 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
700 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
701 +</span></span>Дополнительные ограничения</h4>
702 +
703 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
704 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
705 +</span></span>Ограничения конструктора</h4>
706 +
707 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
708 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
709 +</span></span>Другие проблемы верификации</h4>
710 +
711 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
712 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
713 +13<span lang=EN-US>.</span><span lang=EN-US> </span>Интерфейсы</h2>
714 +
715 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
716 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Наследование
717 +в классах и интерфейсах</h3>
718 +
719 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
720 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
721 +интерфейсов</h3>
722 +
723 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
724 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Наследование
725 +интерфейсов</h3>
726 +
727 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
728 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Подробнее
729 +о вызовах интерфейсных методов</h3>
730 +
731 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
732 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Явные
733 +и неявные реализации интерфейсных методов (что происходит за кулисами)</h3>
734 +
735 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
736 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
737 +интерфейсы</h3>
738 +
739 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
740 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщения
741 +и ограничения интерфейса</h3>
742 +
743 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
744 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Реализация
745 +нескольких интерфейсов с одинаковыми сигнатурами и именами методов</h3>
746 +
747 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
748 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Совершенствование
749 +безопасности типов за счет явной реализации интерфейсных методов</h3>
750 +
751 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
752 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Опасности
753 +явной реализации интерфейсных методов</h3>
754 +
755 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
756 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Дилемма
757 +разработчика: базовый класс или интерфейс?</h3>
758 +
759 +<h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
760 +Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
761 +</span></span>Часть III. Основные типы данных</h1>
762 +
763 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
764 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
765 +14. Символы, строки и обработка текста</h2>
766 +
767 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
768 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Символы</h3>
769 +
770 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
771 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Тип
772 +System.String</h3>
773 +
774 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
775 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
776 +</span></span>Создание строк</h4>
777 +
778 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
779 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
780 +</span></span>Неизменяемые строки</h4>
781 +
782 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
783 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
784 +</span></span>Сравнение строк</h4>
785 +
786 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
787 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
788 +</span></span>Интернирование строк</h4>
789 +
790 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
791 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
792 +</span></span>Создание пулов строк</h4>
793 +
794 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
795 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
796 +</span></span>Работа с символами и текстовыми элементами в строке</h4>
797 +
798 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
799 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
800 +</span></span>Прочие операции со строками</h4>
801 +
802 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
803 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Эффективное
804 +создание строк</h3>
805 +
806 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
807 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
808 +</span></span>Создание объекта StringBuilder</h4>
809 +
810 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
811 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
812 +</span></span>Члены типа StringBuilder</h4>
813 +
814 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
815 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Получение
816 +строкового представления объекта</h3>
817 +
818 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
819 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
820 +</span></span>Форматы и региональные стандарты</h4>
821 +
822 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
823 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
824 +</span></span>Форматирование нескольких объектов в одну строку</h4>
825 +
826 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
827 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
828 +</span></span>Создание собственного средства форматирования</h4>
829 +
830 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
831 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Получение
832 +объекта посредством разбора строки</h3>
833 +
834 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
835 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Кодировки:
836 +преобразования между символами и байтами</h3>
837 +
838 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
839 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
840 +</span></span>Кодирование и декодирование потоков символов и байтов</h4>
841 +
842 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
843 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
844 +</span></span>Кодирование и декодирование строк в кодировке Base-64</h4>
845 +
846 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
847 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Защищенные
848 +строки</h3>
849 +
850 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
851 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
852 +15. Перечислимые типы и битовые флаги</h2>
853 +
854 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
855 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Перечислимые
856 +типы</h3>
857 +
858 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
859 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Битовые
860 +флаги</h3>
861 +
862 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
863 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Добавление
864 +методов к перечислимым типам</h3>
865 +
866 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
867 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
868 +16. Массивы</h2>
869 +
870 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
871 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Инициализация
872 +элементов массива</h3>
873 +
874 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
875 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приведение
876 +типов в массивах</h3>
877 +
878 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
879 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Базовый
880 +класс System Array</h3>
881 +
882 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
883 +style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
884 +</span></span>Реализация интерфейсов <span lang=EN-US>IEnumerable, ICollection </span>и
885 +<span lang=EN-US>IList</span></h3>
886 +
887 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
888 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Передача
889 +и возврат массивов</h3>
890 +
891 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
892 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Массивы
893 +с ненулевой нижней границей</h3>
894 +
895 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
896 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Внутренняя
897 +реализация массивов</h3>
898 +
899 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
900 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Небезопасный
901 +доступ к массивам и массивы фиксированного размера</h3>
902 +
903 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
904 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
905 +17. Делегаты</h2>
906 +
907 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
908 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Знакомство
909 +с делегатами</h3>
910 +
911 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
912 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
913 +вызов статических методов</h3>
914 +
915 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
916 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
917 +вызов экземплярных методов</h3>
918 +
919 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
920 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Тонкости
921 +использования делегатов</h3>
922 +
923 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
924 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обратный
925 +вызов нескольких методов (цепочки делегатов)</h3>
926 +
927 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
928 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
929 +</span></span>Поддержка цепочек делегатов в C#</h4>
930 +
931 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
932 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
933 +</span></span>Дополнительные средства управления цепочками делегатов</h4>
934 +
935 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
936 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Обобщенные
937 +делегаты</h3>
938 +
939 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
940 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Упрощенный
941 +синтаксис работы с делегатами</h3>
942 +
943 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
944 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
945 +</span></span>Упрощение 1: не создаем объект делегата</h4>
946 +
947 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
948 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
949 +</span></span>Упрощение 2: не определяем метод обратного вызова</h4>
950 +
951 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
952 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
953 +</span></span>Упрощение 3: не создаем обертку для локальных переменных для передачи
954 +их методу обратного вызова</h4>
955 +
956 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
957 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Делегаты
958 +и отражение</h3>
959 +
960 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
961 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
962 +18. Настраиваемые атрибуты</h2>
963 +
964 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
965 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сфера
966 +применения настраиваемых атрибутов</h3>
967 +
968 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
969 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
970 +класса атрибутов</h3>
971 +
972 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
973 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструктор
974 +атрибута и типы данных полей и свойств</h3>
975 +
976 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
977 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выявление
978 +настраиваемых атрибутов</h3>
979 +
980 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
981 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сравнение
982 +экземпляров атрибута</h3>
983 +
984 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
985 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выявление
986 +настраиваемых атрибутов без создания объектов, производных от Attribute</h3>
987 +
988 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
989 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Условные
990 +атрибуты</h3>
991 +
992 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
993 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
994 +19. Null-совместимые значимые типы</h2>
995 +
996 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
997 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поддержка
998 +в C# null-совместимых значимых типов</h3>
999 +
1000 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1001 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Оператор
1002 +объединения null-совместимых значений</h3>
1003 +
1004 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1005 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поддержка
1006 +в CLR null-совместимых значимых типов</h3>
1007 +
1008 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1009 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1010 +</span></span>Упаковка null-совместимых значимых типов</h4>
1011 +
1012 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1013 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1014 +</span></span>Распаковка null-совместимых значимых типов</h4>
1015 +
1016 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1017 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1018 +</span></span>Вызов метода GetType через null-совместимый значимый тип</h4>
1019 +
1020 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1021 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1022 +</span></span>Вызов интерфейсных методов через null-совместимый  значимый тип</h4>
1023 +
1024 +<h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
1025 +Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1026 +</span></span>Часть IV. Ключевые механизмы</h1>
1027 +
1028 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1029 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1030 +20. Исключения и управление состоянием 496</h2>
1031 +
1032 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1033 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
1034 +«исключения»</h3>
1035 +
1036 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1037 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Механика
1038 +обработки исключений</h3>
1039 +
1040 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1041 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1042 +</span></span>Блок try</h4>
1043 +
1044 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1045 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1046 +</span></span>Блок catch</h4>
1047 +
1048 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1049 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1050 +</span></span>Блок finally</h4>
1051 +
1052 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1053 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1054 +</span></span>CLS-совместимые и CLS-несовместимые исключения</h4>
1055 +
1056 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1057 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Класс
1058 +System<span lang=EN-US>.</span>Exception</h3>
1059 +
1060 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1061 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Классы
1062 +исключений, определенные в FCL</h3>
1063 +
1064 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1065 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Генерирование
1066 +исключений</h3>
1067 +
1068 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1069 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
1070 +классов исключений</h3>
1071 +
1072 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1073 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Продуктивность
1074 +вместо надежности</h3>
1075 +
1076 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1077 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приемы
1078 +работы с исключениями</h3>
1079 +
1080 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1081 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1082 +</span></span>Активно используйте блоки finally</h4>
1083 +
1084 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1085 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1086 +</span></span>Не надо перехватывать все исключения</h4>
1087 +
1088 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1089 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1090 +</span></span>Корректное восстановление после исключения</h4>
1091 +
1092 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1093 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отмена
1094 +незавершенных операций при невосстановимых исключениях</h3>
1095 +
1096 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1097 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сокрытие
1098 +деталей реализации для сохранения контракта</h3>
1099 +
1100 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1101 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Необработанные
1102 +исключения</h3>
1103 +
1104 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1105 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отладка
1106 +исключений</h3>
1107 +
1108 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1109 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Скорость
1110 +обработки исключений</h3>
1111 +
1112 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1113 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Области
1114 +ограниченного выполнения</h3>
1115 +
1116 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1117 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контракты
1118 +кода</h3>
1119 +
1120 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1121 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1122 +21. Автоматическое управление памятью (уборка мусора)</h2>
1123 +
1124 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1125 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управляемая
1126 +куча</h3>
1127 +
1128 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1129 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1130 +</span></span>Выделение ресурсов из управляемой кучи</h4>
1131 +
1132 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1133 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1134 +</span></span>Алгоритм уборки мусора</h4>
1135 +
1136 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1137 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1138 +</span></span>Уборка мусора и отладка</h4>
1139 +
1140 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1141 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Поколения</h3>
1142 +
1143 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1144 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1145 +</span></span>Запуск уборки мусора</h4>
1146 +
1147 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1148 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1149 +</span></span>Большие объекты</h4>
1150 +
1151 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1152 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1153 +</span></span>Режимы уборки мусора</h4>
1154 +
1155 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1156 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1157 +</span></span>Программное управление уборщиком мусора</h4>
1158 +
1159 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1160 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1161 +</span></span>Мониторинг использования памяти приложением</h4>
1162 +
1163 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1164 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Освобождение
1165 +ресурсов при помощи механизма финализации</h3>
1166 +
1167 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1168 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1169 +</span></span>Типы, использующие системные ресурсы</h4>
1170 +
1171 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1172 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1173 +</span></span>Интересные аспекты зависимостей</h4>
1174 +
1175 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1176 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1177 +</span></span>Другие возможности уборщика мусора для работы с системными ресурсами</h4>
1178 +
1179 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1180 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1181 +</span></span>Внутренняя реализация финализации</h4>
1182 +
1183 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1184 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Мониторинг
1185 +и контроль времени жизни объектов</h3>
1186 +
1187 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1188 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1189 +22. Хостинг CLR и домены приложений</h2>
1190 +
1191 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1192 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Хостинг
1193 +CLR</h3>
1194 +
1195 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1196 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Домены
1197 +приложений</h3>
1198 +
1199 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1200 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1201 +</span></span>Доступ к объектам из других доменов</h4>
1202 +
1203 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1204 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Выгрузка
1205 +доменов</h3>
1206 +
1207 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1208 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Мониторинг
1209 +доменов</h3>
1210 +
1211 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1212 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Уведомление
1213 +о первом управляемом исключении домена</h3>
1214 +
1215 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1216 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Использование
1217 +хостами доменов приложений</h3>
1218 +
1219 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1220 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1221 +</span></span>Исполняемые приложения</h4>
1222 +
1223 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1224 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1225 +</span></span>Полнофункциональные интернет-приложения Silverlight</h4>
1226 +
1227 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1228 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1229 +</span></span>Microsoft ASPNET и веб-службы XML</h4>
1230 +
1231 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1232 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1233 +</span></span>Microsoft SQL Server</h4>
1234 +
1235 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1236 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1237 +</span></span>Будущее и мечты</h4>
1238 +
1239 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1240 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Нетривиальное
1241 +управление хостингом</h3>
1242 +
1243 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1244 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1245 +</span></span>Применение управляемого кода</h4>
1246 +
1247 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1248 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1249 +</span></span>Разработка надежных хост-приложений</h4>
1250 +
1251 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1252 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1253 +</span></span>Возвращение потока в хост</h4>
1254 +
1255 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1256 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1257 +23. Загрузка сборок и отражение</h2>
1258 +
1259 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1260 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Загрузка
1261 +сборок</h3>
1262 +
1263 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1264 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Использование
1265 +отражения для создания динамически расширяемых приложений</h3>
1266 +
1267 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1268 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Производительность
1269 +отражения</h3>
1270 +
1271 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1272 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1273 +</span></span>Нахождение типов, определенных в сборке</h4>
1274 +
1275 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1276 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1277 +</span></span>Объект Type</h4>
1278 +
1279 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1280 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1281 +</span></span>Создание иерархии типов, производных от Exception</h4>
1282 +
1283 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1284 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1285 +</span></span>Создание экземпляра типа</h4>
1286 +
1287 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1288 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Создание
1289 +приложений с поддержкой подключаемых компонентов</h3>
1290 +
1291 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1292 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1293 +</span></span>Нахождение членов типа путем отражения</h4>
1294 +
1295 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1296 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1297 +</span></span>Нахождение членов типа</h4>
1298 +
1299 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1300 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1301 +</span></span>Обращение к членам типов</h4>
1302 +
1303 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1304 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1305 +</span></span>Использование дескрипторов привязки для снижения потребления памяти
1306 +процессом</h4>
1307 +
1308 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1309 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1310 +24. Сериализация</h2>
1311 +
1312 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1313 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Практический
1314 +пример сериализации/десериализации</h3>
1315 +
1316 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1317 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализуемые
1318 +типы</h3>
1319 +
1320 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1321 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управление
1322 +сериализацией и десериализацией</h3>
1323 +
1324 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1325 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализация
1326 +экземпляров типа</h3>
1327 +
1328 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1329 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Управление
1330 +сериализованными и десериализованными данными</h3>
1331 +
1332 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1333 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1334 +</span></span>Определение типа, реализующего интерфейс ISerializable, не реализуемый
1335 +базовым классом</h4>
1336 +
1337 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1338 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контексты
1339 +потока ввода-вывода</h3>
1340 +
1341 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1342 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Сериализация
1343 +в другой тип и десериализация в другой объект</h3>
1344 +
1345 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1346 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Суррогаты
1347 +сериализации</h3>
1348 +
1349 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1350 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1351 +</span></span>Цепочка селекторов суррогатов</h4>
1352 +
1353 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1354 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Переопределение
1355 +сборки и/или типа при десериализации объекта</h3>
1356 +
1357 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1358 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1359 +25. Взаимодействие с компонентами WinRT</h2>
1360 +
1361 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1362 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Проекции
1363 +уровня CLR и правила системы типов компонентов WinRT</h3>
1364 +
1365 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1366 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1367 +</span></span>Основные концепции системы типов WinRT</h4>
1368 +
1369 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1370 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Проекции
1371 +уровня .NET Framework</h3>
1372 +
1373 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1374 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1375 +</span></span>Асинхронные вызовы WinRT API из кода  NET</h4>
1376 +
1377 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1378 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1379 +</span></span>Взаимодействия между потоками WinRT и потоками  NET</h4>
1380 +
1381 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1382 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1383 +</span></span>Передача блоков данных между CLR и WinRT</h4>
1384 +
1385 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1386 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Определение
1387 +компонентов WinRT в коде C#</h3>
1388 +
1389 +<h1 style='margin-left:36.0pt;text-indent:-18.0pt'><span style='font-family:
1390 +Symbol'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1391 +</span></span>Часть V. Многопоточность</h1>
1392 +
1393 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1394 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1395 +26. Потоки исполнения</h2>
1396 +
1397 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1398 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1399 +</span></span>Для чего Windows поддерживает потоки?</h4>
1400 +
1401 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1402 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1403 +</span></span>Ресурсоемкость потоков</h4>
1404 +
1405 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1406 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1407 +</span></span>Так дальше не пойдет!</h4>
1408 +
1409 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1410 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1411 +</span></span>Тенденции развития процессоров</h4>
1412 +
1413 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1414 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1415 +</span></span>CLR- и Windows-потоки</h4>
1416 +
1417 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1418 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1419 +</span></span>Потоки для асинхронных вычислительных операций</h4>
1420 +
1421 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1422 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1423 +</span></span>Причины использования потоков</h4>
1424 +
1425 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1426 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1427 +</span></span>Планирование и приоритеты потоков</h4>
1428 +
1429 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1430 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1431 +</span></span>Фоновые и активные потоки</h4>
1432 +
1433 +<h4 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1434 +Wingdings;font-style:normal'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1435 +</span></span>Что дальше?</h4>
1436 +
1437 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1438 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1439 +27. Асинхронные вычислительные операции</h2>
1440 +
1441 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1442 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Пул
1443 +потоков в CLR</h3>
1444 +
1445 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1446 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простые
1447 +вычислительные операции</h3>
1448 +
1449 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1450 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Контексты
1451 +исполнения</h3>
1452 +
1453 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1454 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Скоординированная
1455 +отмена</h3>
1456 +
1457 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1458 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Задания</h3>
1459 +
1460 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1461 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1462 +</span></span>Завершение задания и получение результата</h4>
1463 +
1464 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1465 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1466 +</span></span>Отмена задания</h4>
1467 +
1468 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1469 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1470 +</span></span>Автоматический запуск задания по завершении предыдущего </h4>
1471 +
1472 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1473 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1474 +</span></span>Дочерние задания</h4>
1475 +
1476 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1477 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1478 +</span></span>Структура задания</h4>
1479 +
1480 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1481 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1482 +</span></span>Фабрики заданий</h4>
1483 +
1484 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1485 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1486 +</span></span>Планировщики заданий</h4>
1487 +
1488 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span lang=EN-US
1489 +style='font-family:Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp;
1490 +</span></span>Методы <span lang=EN-US>For, ForEach </span>и <span lang=EN-US>Invoke
1491 +</span>класса <span lang=EN-US>Parallel</span></h3>
1492 +
1493 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1494 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Встроенный
1495 +язык параллельных запросов</h3>
1496 +
1497 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1498 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Периодические
1499 +вычислительные операции </h3>
1500 +
1501 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1502 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1503 +</span></span>Разновидности таймеров</h4>
1504 +
1505 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1506 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Как
1507 +пул управляет потоками</h3>
1508 +
1509 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1510 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1511 +</span></span>Ограничение количества потоков в пуле</h4>
1512 +
1513 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1514 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1515 +</span></span>Управление рабочими потоками</h4>
1516 +
1517 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1518 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1519 +28. Асинхронные операции ввода-вывода</h2>
1520 +
1521 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1522 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Операции
1523 +ввода-вывода в Windows</h3>
1524 +
1525 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1526 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1527 +функции C#</h3>
1528 +
1529 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1530 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Преобразование
1531 +асинхронной функции в конечный автомат</h3>
1532 +
1533 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1534 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Расширяемость
1535 +асинхронных функций</h3>
1536 +
1537 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1538 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1539 +функции и обработчики событий</h3>
1540 +
1541 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1542 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1543 +функции в FCL</h3>
1544 +
1545 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1546 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронные
1547 +функции и исключения</h3>
1548 +
1549 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1550 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Другие
1551 +возможности асинхронных функций</h3>
1552 +
1553 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1554 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Потоковые
1555 +модели приложений</h3>
1556 +
1557 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1558 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронная
1559 +реализация сервера</h3>
1560 +
1561 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1562 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Отмена
1563 +операций ввода-вывода</h3>
1564 +
1565 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1566 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1567 +</span></span>Некоторые операции ввода-вывода должны выполняться синхронно</h4>
1568 +
1569 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1570 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1571 +</span></span>Проблемы FileStream</h4>
1572 +
1573 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1574 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Приоритеты
1575 +запросов ввода-вывода</h3>
1576 +
1577 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1578 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1579 +29. Примитивные конструкции синхронизации потоков</h2>
1580 +
1581 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1582 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Библиотеки
1583 +классов и безопасность потоков</h3>
1584 +
1585 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1586 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Примитивные
1587 +конструкции пользовательского режима </h3>
1588 +
1589 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1590 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>и режима
1591 +ядра</h3>
1592 +
1593 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1594 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкции
1595 +пользовательского режима</h3>
1596 +
1597 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1598 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1599 +</span></span>Volatile-конструкции</h4>
1600 +
1601 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1602 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1603 +</span></span>Interlocked-конструкции</h4>
1604 +
1605 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1606 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1607 +</span></span>Реализация простой циклической блокировки</h4>
1608 +
1609 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1610 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1611 +</span></span>Универсальный Interlocked-паттерн</h4>
1612 +
1613 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1614 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Конструкции
1615 +режима ядра</h3>
1616 +
1617 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1618 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1619 +</span></span>События</h4>
1620 +
1621 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1622 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1623 +</span></span>Семафоры</h4>
1624 +
1625 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1626 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1627 +</span></span>Мьютексы</h4>
1628 +
1629 +<h2 style='margin-left:72.0pt;text-indent:-18.0pt'><span style='font-family:
1630 +"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp; </span></span>Глава
1631 +30. Гибридные конструкции синхронизации потоков</h2>
1632 +
1633 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1634 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Простая
1635 +гибридная блокировка</h3>
1636 +
1637 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1638 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Зацикливание,
1639 +владение потоком и рекурсия</h3>
1640 +
1641 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1642 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Гибридные
1643 +конструкции в FCL</h3>
1644 +
1645 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1646 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1647 +</span></span>Классы ManualResetEventSlim и SemaphoreSlim</h4>
1648 +
1649 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1650 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1651 +</span></span>Класс Monitor и блоки синхронизации</h4>
1652 +
1653 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1654 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1655 +</span></span>Класс ReaderWriterLockSlim</h4>
1656 +
1657 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1658 +style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1659 +</span></span>Класс <span lang=EN-US>OneManyLock</span></h4>
1660 +
1661 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1662 +style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1663 +</span></span>Класс <span lang=EN-US>CountdownEvent</span></h4>
1664 +
1665 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span lang=EN-US
1666 +style='font-family:Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1667 +</span></span>Класс <span lang=EN-US>Barrier</span></h4>
1668 +
1669 +<h4 style='margin-left:144.0pt;text-indent:-18.0pt'><span style='font-family:
1670 +Symbol;font-style:normal'>·<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1671 +</span></span>Выводы по гибридным конструкциям</h4>
1672 +
1673 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1674 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Блокировка
1675 +с двойной проверкой</h3>
1676 +
1677 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1678 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Паттерн
1679 +условной переменной</h3>
1680 +
1681 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1682 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Асинхронная
1683 +синхронизация</h3>
1684 +
1685 +<h3 style='margin-left:108.0pt;text-indent:-18.0pt'><span style='font-family:
1686 +Wingdings'>§<span style='font:7.0pt "Times New Roman"'>&nbsp; </span></span>Классы
1687 +коллекций для параллельного доступа</h3>
1688 +
1689 +</div>
1690 +
1691 +</body>
1692 +
1693 +</html>
1694 +
1695 +{{/html}}
1696 +
1697 +(% class="WordSection1" %)
1698 +(((
1699 +(% style="margin-left:36.0pt;text-indent:-18.0pt" %)
1700 += (% style="font-family:Symbol" %)·(% style="font-family: Symbol; font: 7pt ~"Times New Roman~"" %)       (%%)Часть I. Основы CLR =
1701 +
1702 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1703 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 1. Модель выполнения кода в среде CLR ==
1704 +
1705 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1706 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Компиляция исходного кода в управляемые модули ===
1707 +
1708 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1709 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Объединение управляемых модулей в сборку ===
1710 +
1711 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1712 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Загрузка CLR ===
1713 +
1714 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1715 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Исполнение кода сборки ===
1716 +
1717 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1718 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)IL-код и верификация ====
1719 +
1720 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1721 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Небезопасный код ====
1722 +
1723 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1724 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)IL и защита интеллектуальной собственности ====
1725 +
1726 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1727 +=== (% lang="EN-US" style="font-family:Wingdings" %)§(% lang="EN-US" style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (% lang="EN-US" %)NGen.exe(%%) ===
1728 +
1729 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1730 +=== (% lang="EN-US" style="font-family:Wingdings" %)§(% lang="EN-US" style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Библиотека (% lang="EN-US" %)FCL(%%) ===
1731 +
1732 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1733 +=== (% lang="EN-US" style="font-family:Wingdings" %)§(% lang="EN-US" style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (% lang="EN-US" %)CTS(%%) ===
1734 +
1735 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1736 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)CLS ===
1737 +
1738 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1739 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Взаимодействие с неуправляемым кодом ===
1740 +
1741 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1742 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 2. Компоновка, упаковка, развертывание и администрирование приложений и типов ==
1743 +
1744 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1745 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Задачи развертывания в (% lang="EN-US" %).(%%)NET Framework ===
1746 +
1747 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1748 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Компоновка типов в модуль ===
1749 +
1750 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1751 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Файл параметров ====
1752 +
1753 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1754 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Несколько слов о метаданных ===
1755 +
1756 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1757 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Объединение модулей для создания сборки ===
1758 +
1759 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1760 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Добавление сборок в проект в среде Visual Studio ====
1761 +
1762 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1763 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Использование утилиты Assembly Linker ====
1764 +
1765 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1766 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Включение в сборку файлов ресурсов ====
1767 +
1768 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1769 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Ресурсы со сведениями о версии сборки ===
1770 +
1771 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1772 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Номера версии ====
1773 +
1774 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1775 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Региональные стандарты ===
1776 +
1777 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1778 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Развертывание простых приложений (закрытое развертывание сборок) ===
1779 +
1780 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1781 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Простое средство администрирования (конфигурационный файл) ===
1782 +
1783 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1784 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Алгоритм поиска файлов сборки ====
1785 +
1786 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1787 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 3. Совместно используемые сборки и сборки со строгим именем ==
1788 +
1789 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1790 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Два вида сборок — два вида развертывания ===
1791 +
1792 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1793 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Назначение сборке строгого имени ===
1794 +
1795 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1796 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Глобальный кэш сборок ===
1797 +
1798 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1799 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Построение сборки, ссылающейся на сборку со строгим именем ===
1800 +
1801 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1802 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Устойчивость сборок со строгими именами к несанкционированной модификации ===
1803 +
1804 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1805 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Отложенное подписание ===
1806 +
1807 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1808 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Закрытое развертывание сборок со строгими именами ===
1809 +
1810 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1811 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Как исполняющая среда разрешает ссылки на типы ===
1812 +
1813 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1814 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Дополнительные административные средства (конфигурационные файлы) ===
1815 +
1816 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1817 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Управление версиями при помощи политики издателя ====
1818 +
1819 +(% style="margin-left:36.0pt;text-indent:-18.0pt" %)
1820 += (% style="font-family:Symbol" %)·(% style="font-family: Symbol; font: 7pt ~"Times New Roman~"" %)       (%%)Часть II. Проектирование типов =
1821 +
1822 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1823 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 4. Основы типов ==
1824 +
1825 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1826 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Все типы — производные от System.Object ===
1827 +
1828 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1829 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Приведение типов ===
1830 +
1831 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1832 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Приведение типов в C# с помощью операторов is и as ====
1833 +
1834 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1835 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Пространства имен и сборки ===
1836 +
1837 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1838 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Связь между сборками и пространством имен ====
1839 +
1840 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1841 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Как разные компоненты взаимодействуют во время выполнения ===
1842 +
1843 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1844 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 5. Примитивные, ссылочные и значимые типы ==
1845 +
1846 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1847 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Примитивные типы в языках программирования ===
1848 +
1849 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1850 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Проверяемые и непроверяемые операции для примитивных типов ====
1851 +
1852 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1853 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Ссылочные и значимые типы ===
1854 +
1855 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1856 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Как CLR управляет размещением полей для типа ====
1857 +
1858 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1859 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Упаковка и распаковка значимых типов ===
1860 +
1861 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1862 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Изменение полей в упакованных значимых типах посредством интерфейсов (и почему этого лучше не делать) ====
1863 +
1864 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1865 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Равенство и тождество объектов ====
1866 +
1867 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1868 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Хеш-коды объектов ===
1869 +
1870 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1871 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Примитивный тип данных dynamic ===
1872 +
1873 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1874 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 6. Основные сведения о членах и типах ==
1875 +
1876 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1877 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Члены типа ===
1878 +
1879 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1880 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Видимость типа ===
1881 +
1882 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1883 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Дружественные сборки ====
1884 +
1885 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1886 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Доступ к членам типов ===
1887 +
1888 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1889 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Статические классы ===
1890 +
1891 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1892 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Частичные классы, структуры и интерфейсы ===
1893 +
1894 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1895 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Компоненты, полиморфизм и версии ===
1896 +
1897 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1898 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Вызов виртуальных методов, свойств и событий в CLR ====
1899 +
1900 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1901 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Разумное использование видимости типов и модификаторов доступа к членам ====
1902 +
1903 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1904 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Работа с виртуальными методами при управлении версиями типов ====
1905 +
1906 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1907 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 7. Константы и поля ==
1908 +
1909 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1910 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Константы ===
1911 +
1912 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1913 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Поля ===
1914 +
1915 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1916 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 8. Методы ==
1917 +
1918 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1919 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструкторы экземпляров и классы (ссылочные типы) ===
1920 +
1921 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1922 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструкторы экземпляров и структуры (значимые типы) ===
1923 +
1924 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1925 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструкторы типов ===
1926 +
1927 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1928 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Методы перегруженных операторов ===
1929 +
1930 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1931 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Операторы и взаимодействие языков программирования ====
1932 +
1933 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1934 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Особое мнение автора о правилах Microsoft, связанных с именами методов операторов ====
1935 +
1936 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1937 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Методы операторов преобразования ===
1938 +
1939 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1940 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Методы расширения ===
1941 +
1942 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1943 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Правила и рекомендации ====
1944 +
1945 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1946 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Расширение разных типов методами расширения ====
1947 +
1948 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1949 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Атрибут расширения ====
1950 +
1951 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1952 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Частичные методы ===
1953 +
1954 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1955 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Правила и рекомендации ====
1956 +
1957 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1958 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 9. Параметры ==
1959 +
1960 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1961 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Необязательные и именованные параметры ===
1962 +
1963 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1964 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Правила использования параметров. ====
1965 +
1966 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1967 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Атрибут DefaultParameterValue и необязательные атрибуты ====
1968 +
1969 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1970 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Неявно типизированные локальные переменные ===
1971 +
1972 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1973 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Передача параметров в метод по ссылке ===
1974 +
1975 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1976 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Передача переменного количества аргументов ===
1977 +
1978 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1979 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Типы параметров и возвращаемых значений ===
1980 +
1981 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1982 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Константность ===
1983 +
1984 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
1985 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 10. Свойства ==
1986 +
1987 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
1988 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Свойства без параметров ===
1989 +
1990 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1991 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Автоматически реализуемые свойства ====
1992 +
1993 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1994 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Осторожный подход к определению свойств ====
1995 +
1996 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
1997 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Свойства и отладчик Visual Studio ====
1998 +
1999 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2000 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Инициализаторы объектов и коллекций ====
2001 +
2002 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2003 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Анонимные типы ====
2004 +
2005 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2006 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Тип System.Tuple ====
2007 +
2008 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2009 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Свойства с параметрами ===
2010 +
2011 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2012 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Выбор главного свойства с параметрами ====
2013 +
2014 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2015 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Производительность при вызове методов доступа ===
2016 +
2017 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2018 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Доступность методов доступа свойств ===
2019 +
2020 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2021 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные методы доступа свойств ===
2022 +
2023 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2024 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 11. События ==
2025 +
2026 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2027 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Разработка типа, поддерживающего событие ===
2028 +
2029 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2030 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Этап 1. Определение типа для хранения всей дополнительной информации, передаваемой получателям уведомления о событии ===
2031 +
2032 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2033 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Этап 2. Определение члена-события ===
2034 +
2035 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2036 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Этап 3. Определение метода, ответственного за уведомление зарегистрированных объектов о событии ===
2037 +
2038 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2039 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Этап 4. Определение метода, преобразующего входную информацию в желаемое событие ===
2040 +
2041 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2042 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Реализация событий компилятором ===
2043 +
2044 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2045 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Создание типа, отслеживающего событие ===
2046 +
2047 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2048 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Явное управление регистрацией событий ===
2049 +
2050 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2051 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 12. Обобщения ==
2052 +
2053 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2054 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщения в библиотеке FCL ===
2055 +
2056 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2057 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Инфраструктура обобщений ===
2058 +
2059 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2060 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Открытые и закрытые типы ====
2061 +
2062 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2063 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Обобщенные типы и наследование ====
2064 +
2065 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2066 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Идентификация обобщенных типов ====
2067 +
2068 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2069 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Разрастание кода ====
2070 +
2071 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2072 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные интерфейсы ===
2073 +
2074 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2075 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные делегаты ===
2076 +
2077 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2078 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Контравариантные и ковариантные аргументы-типы в делегатах и интерфейсах ====
2079 +
2080 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2081 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные методы ===
2082 +
2083 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2084 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Обобщенные методы и выведение типов ====
2085 +
2086 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2087 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщения и другие члены ===
2088 +
2089 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2090 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Верификация и ограничения ===
2091 +
2092 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2093 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Основные ограничения ====
2094 +
2095 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2096 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Дополнительные ограничения ====
2097 +
2098 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2099 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Ограничения конструктора ====
2100 +
2101 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2102 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Другие проблемы верификации ====
2103 +
2104 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2105 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 13(% lang="EN-US" %). (%%)Интерфейсы ==
2106 +
2107 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2108 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Наследование в классах и интерфейсах ===
2109 +
2110 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2111 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Определение интерфейсов ===
2112 +
2113 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2114 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Наследование интерфейсов ===
2115 +
2116 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2117 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Подробнее о вызовах интерфейсных методов ===
2118 +
2119 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2120 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Явные и неявные реализации интерфейсных методов (что происходит за кулисами) ===
2121 +
2122 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2123 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные интерфейсы ===
2124 +
2125 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2126 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщения и ограничения интерфейса ===
2127 +
2128 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2129 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Реализация нескольких интерфейсов с одинаковыми сигнатурами и именами методов ===
2130 +
2131 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2132 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Совершенствование безопасности типов за счет явной реализации интерфейсных методов ===
2133 +
2134 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2135 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Опасности явной реализации интерфейсных методов ===
2136 +
2137 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2138 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Дилемма разработчика: базовый класс или интерфейс? ===
2139 +
2140 +(% style="margin-left:36.0pt;text-indent:-18.0pt" %)
2141 += (% style="font-family:Symbol" %)·(% style="font-family: Symbol; font: 7pt ~"Times New Roman~"" %)       (%%)Часть III. Основные типы данных =
2142 +
2143 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2144 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 14. Символы, строки и обработка текста ==
2145 +
2146 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2147 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Символы ===
2148 +
2149 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2150 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Тип System.String ===
2151 +
2152 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2153 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание строк ====
2154 +
2155 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2156 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Неизменяемые строки ====
2157 +
2158 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2159 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Сравнение строк ====
2160 +
2161 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2162 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Интернирование строк ====
2163 +
2164 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2165 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание пулов строк ====
2166 +
2167 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2168 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Работа с символами и текстовыми элементами в строке ====
2169 +
2170 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2171 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Прочие операции со строками ====
2172 +
2173 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2174 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Эффективное создание строк ===
2175 +
2176 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2177 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание объекта StringBuilder ====
2178 +
2179 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2180 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Члены типа StringBuilder ====
2181 +
2182 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2183 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Получение строкового представления объекта ===
2184 +
2185 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2186 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Форматы и региональные стандарты ====
2187 +
2188 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2189 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Форматирование нескольких объектов в одну строку ====
2190 +
2191 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2192 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание собственного средства форматирования ====
2193 +
2194 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2195 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Получение объекта посредством разбора строки ===
2196 +
2197 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2198 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Кодировки: преобразования между символами и байтами ===
2199 +
2200 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2201 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Кодирование и декодирование потоков символов и байтов ====
2202 +
2203 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2204 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Кодирование и декодирование строк в кодировке Base-64 ====
2205 +
2206 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2207 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Защищенные строки ===
2208 +
2209 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2210 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 15. Перечислимые типы и битовые флаги ==
2211 +
2212 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2213 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Перечислимые типы ===
2214 +
2215 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2216 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Битовые флаги ===
2217 +
2218 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2219 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Добавление методов к перечислимым типам ===
2220 +
2221 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2222 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 16. Массивы ==
2223 +
2224 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2225 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Инициализация элементов массива ===
2226 +
2227 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2228 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Приведение типов в массивах ===
2229 +
2230 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2231 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Базовый класс System Array ===
2232 +
2233 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2234 +=== (% lang="EN-US" style="font-family:Wingdings" %)§(% lang="EN-US" style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Реализация интерфейсов (% lang="EN-US" %)IEnumerable, ICollection (%%)и (% lang="EN-US" %)IList(%%) ===
2235 +
2236 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2237 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Передача и возврат массивов ===
2238 +
2239 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2240 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Массивы с ненулевой нижней границей ===
2241 +
2242 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2243 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Внутренняя реализация массивов ===
2244 +
2245 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2246 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Небезопасный доступ к массивам и массивы фиксированного размера ===
2247 +
2248 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2249 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 17. Делегаты ==
2250 +
2251 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2252 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Знакомство с делегатами ===
2253 +
2254 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2255 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обратный вызов статических методов ===
2256 +
2257 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2258 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обратный вызов экземплярных методов ===
2259 +
2260 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2261 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Тонкости использования делегатов ===
2262 +
2263 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2264 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обратный вызов нескольких методов (цепочки делегатов) ===
2265 +
2266 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2267 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Поддержка цепочек делегатов в C# ====
2268 +
2269 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2270 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Дополнительные средства управления цепочками делегатов ====
2271 +
2272 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2273 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Обобщенные делегаты ===
2274 +
2275 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2276 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Упрощенный синтаксис работы с делегатами ===
2277 +
2278 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2279 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Упрощение 1: не создаем объект делегата ====
2280 +
2281 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2282 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Упрощение 2: не определяем метод обратного вызова ====
2283 +
2284 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2285 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Упрощение 3: не создаем обертку для локальных переменных для передачи их методу обратного вызова ====
2286 +
2287 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2288 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Делегаты и отражение ===
2289 +
2290 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2291 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 18. Настраиваемые атрибуты ==
2292 +
2293 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2294 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сфера применения настраиваемых атрибутов ===
2295 +
2296 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2297 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Определение класса атрибутов ===
2298 +
2299 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2300 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструктор атрибута и типы данных полей и свойств ===
2301 +
2302 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2303 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Выявление настраиваемых атрибутов ===
2304 +
2305 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2306 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сравнение экземпляров атрибута ===
2307 +
2308 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2309 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Выявление настраиваемых атрибутов без создания объектов, производных от Attribute ===
2310 +
2311 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2312 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Условные атрибуты ===
2313 +
2314 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2315 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 19. Null-совместимые значимые типы ==
2316 +
2317 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2318 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Поддержка в C# null-совместимых значимых типов ===
2319 +
2320 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2321 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Оператор объединения null-совместимых значений ===
2322 +
2323 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2324 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Поддержка в CLR null-совместимых значимых типов ===
2325 +
2326 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2327 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Упаковка null-совместимых значимых типов ====
2328 +
2329 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2330 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Распаковка null-совместимых значимых типов ====
2331 +
2332 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2333 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Вызов метода GetType через null-совместимый значимый тип ====
2334 +
2335 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2336 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Вызов интерфейсных методов через null-совместимый значимый тип ====
2337 +
2338 +(% style="margin-left:36.0pt;text-indent:-18.0pt" %)
2339 += (% style="font-family:Symbol" %)·(% style="font-family: Symbol; font: 7pt ~"Times New Roman~"" %)       (%%)Часть IV. Ключевые механизмы =
2340 +
2341 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2342 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 20. Исключения и управление состоянием 496 ==
2343 +
2344 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2345 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Определение «исключения» ===
2346 +
2347 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2348 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Механика обработки исключений ===
2349 +
2350 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2351 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Блок try ====
2352 +
2353 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2354 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Блок catch ====
2355 +
2356 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2357 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Блок finally ====
2358 +
2359 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2360 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)CLS-совместимые и CLS-несовместимые исключения ====
2361 +
2362 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2363 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Класс System(% lang="EN-US" %).(%%)Exception ===
2364 +
2365 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2366 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Классы исключений, определенные в FCL ===
2367 +
2368 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2369 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Генерирование исключений ===
2370 +
2371 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2372 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Создание классов исключений ===
2373 +
2374 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2375 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Продуктивность вместо надежности ===
2376 +
2377 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2378 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Приемы работы с исключениями ===
2379 +
2380 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2381 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Активно используйте блоки finally ====
2382 +
2383 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2384 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Не надо перехватывать все исключения ====
2385 +
2386 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2387 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Корректное восстановление после исключения ====
2388 +
2389 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2390 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Отмена незавершенных операций при невосстановимых исключениях ===
2391 +
2392 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2393 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сокрытие деталей реализации для сохранения контракта ===
2394 +
2395 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2396 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Необработанные исключения ===
2397 +
2398 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2399 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Отладка исключений ===
2400 +
2401 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2402 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Скорость обработки исключений ===
2403 +
2404 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2405 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Области ограниченного выполнения ===
2406 +
2407 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2408 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Контракты кода ===
2409 +
2410 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2411 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 21. Автоматическое управление памятью (уборка мусора) ==
2412 +
2413 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2414 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Управляемая куча ===
2415 +
2416 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2417 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Выделение ресурсов из управляемой кучи ====
2418 +
2419 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2420 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Алгоритм уборки мусора ====
2421 +
2422 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2423 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Уборка мусора и отладка ====
2424 +
2425 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2426 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Поколения ===
2427 +
2428 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2429 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Запуск уборки мусора ====
2430 +
2431 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2432 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Большие объекты ====
2433 +
2434 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2435 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Режимы уборки мусора ====
2436 +
2437 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2438 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Программное управление уборщиком мусора ====
2439 +
2440 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2441 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Мониторинг использования памяти приложением ====
2442 +
2443 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2444 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Освобождение ресурсов при помощи механизма финализации ===
2445 +
2446 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2447 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Типы, использующие системные ресурсы ====
2448 +
2449 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2450 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Интересные аспекты зависимостей ====
2451 +
2452 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2453 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Другие возможности уборщика мусора для работы с системными ресурсами ====
2454 +
2455 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2456 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Внутренняя реализация финализации ====
2457 +
2458 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2459 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Мониторинг и контроль времени жизни объектов ===
2460 +
2461 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2462 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 22. Хостинг CLR и домены приложений ==
2463 +
2464 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2465 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Хостинг CLR ===
2466 +
2467 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2468 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Домены приложений ===
2469 +
2470 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2471 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Доступ к объектам из других доменов ====
2472 +
2473 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2474 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Выгрузка доменов ===
2475 +
2476 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2477 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Мониторинг доменов ===
2478 +
2479 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2480 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Уведомление о первом управляемом исключении домена ===
2481 +
2482 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2483 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Использование хостами доменов приложений ===
2484 +
2485 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2486 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Исполняемые приложения ====
2487 +
2488 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2489 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Полнофункциональные интернет-приложения Silverlight ====
2490 +
2491 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2492 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Microsoft ASPNET и веб-службы XML ====
2493 +
2494 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2495 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Microsoft SQL Server ====
2496 +
2497 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2498 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Будущее и мечты ====
2499 +
2500 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2501 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Нетривиальное управление хостингом ===
2502 +
2503 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2504 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Применение управляемого кода ====
2505 +
2506 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2507 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Разработка надежных хост-приложений ====
2508 +
2509 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2510 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Возвращение потока в хост ====
2511 +
2512 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2513 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 23. Загрузка сборок и отражение ==
2514 +
2515 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2516 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Загрузка сборок ===
2517 +
2518 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2519 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Использование отражения для создания динамически расширяемых приложений ===
2520 +
2521 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2522 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Производительность отражения ===
2523 +
2524 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2525 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Нахождение типов, определенных в сборке ====
2526 +
2527 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2528 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Объект Type ====
2529 +
2530 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2531 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание иерархии типов, производных от Exception ====
2532 +
2533 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2534 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Создание экземпляра типа ====
2535 +
2536 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2537 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Создание приложений с поддержкой подключаемых компонентов ===
2538 +
2539 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2540 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Нахождение членов типа путем отражения ====
2541 +
2542 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2543 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Нахождение членов типа ====
2544 +
2545 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2546 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Обращение к членам типов ====
2547 +
2548 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2549 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Использование дескрипторов привязки для снижения потребления памяти процессом ====
2550 +
2551 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2552 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 24. Сериализация ==
2553 +
2554 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2555 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Практический пример сериализации/десериализации ===
2556 +
2557 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2558 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сериализуемые типы ===
2559 +
2560 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2561 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Управление сериализацией и десериализацией ===
2562 +
2563 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2564 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сериализация экземпляров типа ===
2565 +
2566 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2567 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Управление сериализованными и десериализованными данными ===
2568 +
2569 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2570 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Определение типа, реализующего интерфейс ISerializable, не реализуемый базовым классом ====
2571 +
2572 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2573 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Контексты потока ввода-вывода ===
2574 +
2575 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2576 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Сериализация в другой тип и десериализация в другой объект ===
2577 +
2578 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2579 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Суррогаты сериализации ===
2580 +
2581 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2582 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Цепочка селекторов суррогатов ====
2583 +
2584 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2585 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Переопределение сборки и/или типа при десериализации объекта ===
2586 +
2587 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2588 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 25. Взаимодействие с компонентами WinRT ==
2589 +
2590 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2591 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Проекции уровня CLR и правила системы типов компонентов WinRT ===
2592 +
2593 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2594 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Основные концепции системы типов WinRT ====
2595 +
2596 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2597 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Проекции уровня .NET Framework ===
2598 +
2599 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2600 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Асинхронные вызовы WinRT API из кода NET ====
2601 +
2602 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2603 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Взаимодействия между потоками WinRT и потоками NET ====
2604 +
2605 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2606 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Передача блоков данных между CLR и WinRT ====
2607 +
2608 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2609 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Определение компонентов WinRT в коде C# ===
2610 +
2611 +(% style="margin-left:36.0pt;text-indent:-18.0pt" %)
2612 += (% style="font-family:Symbol" %)·(% style="font-family: Symbol; font: 7pt ~"Times New Roman~"" %)       (%%)Часть V. Многопоточность =
2613 +
2614 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2615 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 26. Потоки исполнения ==
2616 +
2617 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2618 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Для чего Windows поддерживает потоки? ====
2619 +
2620 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2621 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Ресурсоемкость потоков ====
2622 +
2623 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2624 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Так дальше не пойдет! ====
2625 +
2626 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2627 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Тенденции развития процессоров ====
2628 +
2629 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2630 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)CLR- и Windows-потоки ====
2631 +
2632 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2633 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Потоки для асинхронных вычислительных операций ====
2634 +
2635 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2636 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Причины использования потоков ====
2637 +
2638 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2639 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Планирование и приоритеты потоков ====
2640 +
2641 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2642 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Фоновые и активные потоки ====
2643 +
2644 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2645 +==== (% style="font-family:Wingdings; font-style:normal" %)§(% style="font-family: Wingdings; font-style: normal; font: 7pt ~"Times New Roman~"" %)  (%%)Что дальше? ====
2646 +
2647 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2648 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 27. Асинхронные вычислительные операции ==
2649 +
2650 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2651 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Пул потоков в CLR ===
2652 +
2653 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2654 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Простые вычислительные операции ===
2655 +
2656 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2657 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Контексты исполнения ===
2658 +
2659 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2660 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Скоординированная отмена ===
2661 +
2662 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2663 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Задания ===
2664 +
2665 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2666 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Завершение задания и получение результата ====
2667 +
2668 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2669 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Отмена задания ====
2670 +
2671 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2672 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Автоматический запуск задания по завершении предыдущего ====
2673 +
2674 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2675 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Дочерние задания ====
2676 +
2677 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2678 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Структура задания ====
2679 +
2680 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2681 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Фабрики заданий ====
2682 +
2683 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2684 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Планировщики заданий ====
2685 +
2686 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2687 +=== (% lang="EN-US" style="font-family:Wingdings" %)§(% lang="EN-US" style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Методы (% lang="EN-US" %)For, ForEach (%%)и (% lang="EN-US" %)Invoke (%%)класса (% lang="EN-US" %)Parallel(%%) ===
2688 +
2689 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2690 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Встроенный язык параллельных запросов ===
2691 +
2692 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2693 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Периодические вычислительные операции ===
2694 +
2695 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2696 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Разновидности таймеров ====
2697 +
2698 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2699 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Как пул управляет потоками ===
2700 +
2701 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2702 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Ограничение количества потоков в пуле ====
2703 +
2704 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2705 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Управление рабочими потоками ====
2706 +
2707 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2708 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 28. Асинхронные операции ввода-вывода ==
2709 +
2710 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2711 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Операции ввода-вывода в Windows ===
2712 +
2713 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2714 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронные функции C# ===
2715 +
2716 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2717 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Преобразование асинхронной функции в конечный автомат ===
2718 +
2719 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2720 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Расширяемость асинхронных функций ===
2721 +
2722 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2723 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронные функции и обработчики событий ===
2724 +
2725 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2726 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронные функции в FCL ===
2727 +
2728 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2729 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронные функции и исключения ===
2730 +
2731 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2732 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Другие возможности асинхронных функций ===
2733 +
2734 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2735 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Потоковые модели приложений ===
2736 +
2737 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2738 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронная реализация сервера ===
2739 +
2740 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2741 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Отмена операций ввода-вывода ===
2742 +
2743 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2744 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Некоторые операции ввода-вывода должны выполняться синхронно ====
2745 +
2746 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2747 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Проблемы FileStream ====
2748 +
2749 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2750 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Приоритеты запросов ввода-вывода ===
2751 +
2752 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2753 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 29. Примитивные конструкции синхронизации потоков ==
2754 +
2755 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2756 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Библиотеки классов и безопасность потоков ===
2757 +
2758 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2759 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Примитивные конструкции пользовательского режима ===
2760 +
2761 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2762 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)и режима ядра ===
2763 +
2764 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2765 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструкции пользовательского режима ===
2766 +
2767 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2768 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Volatile-конструкции ====
2769 +
2770 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2771 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Interlocked-конструкции ====
2772 +
2773 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2774 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Реализация простой циклической блокировки ====
2775 +
2776 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2777 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Универсальный Interlocked-паттерн ====
2778 +
2779 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2780 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Конструкции режима ядра ===
2781 +
2782 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2783 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)События ====
2784 +
2785 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2786 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Семафоры ====
2787 +
2788 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2789 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Мьютексы ====
2790 +
2791 +(% style="margin-left:72.0pt;text-indent:-18.0pt" %)
2792 +== (% style="font-family:~"Courier New~"" %)o(% style="font-family: ~"Courier New~"; font: 7pt ~"Times New Roman~"" %)   (%%)Глава 30. Гибридные конструкции синхронизации потоков ==
2793 +
2794 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2795 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Простая гибридная блокировка ===
2796 +
2797 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2798 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Зацикливание, владение потоком и рекурсия ===
2799 +
2800 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2801 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Гибридные конструкции в FCL ===
2802 +
2803 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2804 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Классы ManualResetEventSlim и SemaphoreSlim ====
2805 +
2806 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2807 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Класс Monitor и блоки синхронизации ====
2808 +
2809 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2810 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Класс ReaderWriterLockSlim ====
2811 +
2812 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2813 +==== (% lang="EN-US" style="font-family:Symbol; font-style:normal" %)·(% lang="EN-US" style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Класс (% lang="EN-US" %)OneManyLock(%%) ====
2814 +
2815 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2816 +==== (% lang="EN-US" style="font-family:Symbol; font-style:normal" %)·(% lang="EN-US" style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Класс (% lang="EN-US" %)CountdownEvent(%%) ====
2817 +
2818 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2819 +==== (% lang="EN-US" style="font-family:Symbol; font-style:normal" %)·(% lang="EN-US" style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Класс (% lang="EN-US" %)Barrier(%%) ====
2820 +
2821 +(% style="margin-left:144.0pt;text-indent:-18.0pt" %)
2822 +==== (% style="font-family:Symbol; font-style:normal" %)·(% style="font-family: Symbol; font-style: normal; font: 7pt ~"Times New Roman~"" %)         (%%)Выводы по гибридным конструкциям ====
2823 +
2824 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2825 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Блокировка с двойной проверкой ===
2826 +
2827 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2828 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Паттерн условной переменной ===
2829 +
2830 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2831 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Асинхронная синхронизация ===
2832 +
2833 +(% style="margin-left:108.0pt;text-indent:-18.0pt" %)
2834 +=== (% style="font-family:Wingdings" %)§(% style="font-family: Wingdings; font: 7pt ~"Times New Roman~"" %)  (%%)Классы коллекций для параллельного доступа ===
2835 +)))
2836 +
2837 +(% style="background:url(~"https://wiki.denhome.ru/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.55/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||height="15" role="presentation" title="Нажмите и перетащите, чтобы переместить" width="15"]]