Изменения документа CLR via C# | Джеффри Рихтер
Редактировал(а) Alexandr Fokin 2022/12/12 12:01
<
>
отредактировано Alexandr Fokin
на 2020/08/09 22:10
на 2020/08/09 22:10
отредактировано Alexandr Fokin
на 2020/01/05 20:45
на 2020/01/05 20:45
Изменить комментарий:
Добавлен тег [Book,Книга]
Комментарий
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,1697 +1,0 @@ 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> 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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> 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"'> </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"'> 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"'> </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"'> </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"'> </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"'> 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"'> </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"'> 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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> 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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> 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"'> </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"'> 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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> 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"'> </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"'> </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"'> </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"'> 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"'> </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"'> 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"'> 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"'> 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"'> </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"'> 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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> 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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> </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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> 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"'> </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"'> </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"'> </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"'> </span></span>Классы 1688 -коллекций для параллельного доступа</h3> 1689 - 1690 -</div> 1691 - 1692 -</body> 1693 - 1694 -</html> 1695 - 1696 -{{/html}} 1697 -