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