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