Изменения документа CLR via C# | Джеффри Рихтер

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

От версии 1.1 >
отредактировано Alexandr Fokin
на 2020/01/05 18:52
К версии < 3.1 >
отредактировано Alexandr Fokin
на 2020/08/09 22:10
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

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