Содержание книги "Язык программирования С# 2008 и платформа .NET 3.5"
Big-Pig копилочка интересной и полезной информации

Поиск

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Содержание книги "Язык программирования С# 2008 и платформа .NET 3.5"


Эндрю Троелсен

Язык программирования С# 2008 и платформа .NET 3.5



Скриншот из книги:





СОДЕРЖАНИЕ

Об авторе
О техническом редакторе
Благодарности

Введение
Автор и читатель — одна команда ..32
Краткий обзор содержания ..33
Часть I. Общие сведения о языке С# и платформе .NET ..33
Часть II. Главные конструкции программирования на С# ..34
Часть III. Дополнительные конструкции программирования на С# ..35
Часть IV. Программирование с использованием сборок .NET ..36
Часть V. Введение в библиотеки базовых классов .NET ..38
Часть VI. Настольные пользовательские интерфейсы ..39
Часть VII. Построение веб-приложений с использованием ASP.NET ..40
Часть VIII. Приложения ..41
Исходный код примеров ..42
От издательства ..42

ЧАСТЬ I. Общие сведения о языке С# и платформе .NET

Глава 1. Философия .NET
Предыдущее состояние дел ..44
   Подход С/Win32 API ..45
   Подход C++/MFC ..45
   Подход Visual Basic 6.0 ..45
   Подход Java/J2EE ..46
   Подход СОМ ..46
   Подход Windows DNA ..47
Решение .NET ..48
Знакомство с главными компонентами платформы .NET (CLR, CTS и CLS) ..48
   Роль библиотек базовых классов ..49
Что привносит язык С# ..49
Другие языки программирования с поддержкой .NET ..51
   Жизнь в многоязычном окружении ..53
Что собой представляют сборки в .NET ..53
   Однофайловые и многофайловые сборки ..55
   Роль CIL ..55
   Преимущества CIL ..57
   Компиляция CIL-кода в инструкции, ориентированные на конкретную платформу ..58
Роль метаданных типов .NET ..58
Роль манифеста сборки ..59
Что собой представляет общая система типов (CTS) ..60
   Типы классов ..60
   Типы интерфейсов ..61
   Типы структур ..61
   Типы перечислений ..62
   Типы делегатов ..62
   Члены типов ..62
   Встроенные типы данных CTS ..63
Что собой представляет общеязыковая спецификация (CLS) ..64
   Обеспечение гарантии соответствия CLS ..65
Что собой представляет общеязыковая исполняющая среда (CLR) ..66
Различия между сборками, пространствами имен и типами ..67
   Роль, которую исполняют пространства имен Microsoft ..70
   Получение доступа к пространствам имен программным образом ..71
   Добавление ссылок на внешние сборки ..72
Изучение сборки с помощью утилиты ildasm.exe ..73
   Просмотр CIL-кода ..74
   Просмотр метаданных типов ..74
   Просмотр метаданных сборки (т.е. манифеста) ..74
Изучение сборки с помощью утилиты Reflector ..75
Развертывание исполняющей среды .NET ..76
Не зависимая от платформы природа .NET ..76
Резюме ..78
Глава 2. Создание приложений на языке С#
Роль, которую исполняет .NET Framework 3.5 SDK ..79
   Окно командной строки Visual Studio ..80
Построение приложений на С# с использованием csc.exe ..81
   Указание целевых входных и выходных параметров ..82
   Добавление ссылок на внешние сборки ..83
   Добавление ссылок на несколько внешних сборок ..84
   Компиляция нескольких файлов исходного кода ..84
   Работа с ответными файлами в С# ..85
Создание .NET-приложений с использованием TfextPad ..87
   Активизация функции выделения ключевых слов С# цветом ..87
   Настройка фильтра файлов *.сs ..87
   Подключение к csc.exe ..89
   Ассоциирование команд выполнения с пунктами меню ..90
Создание приложений .NET с использованием Notepad++ ..91
   Настройка списка вариантов для автоматического завершения кода ..92
Создание .NET-приложений с использованием SharpDevelop ..92
   Построение простого тестового проекта ..93
Создание .NET-приложений с использованием Visual С# 2008 Express ..95
   Некоторые уникальные функциональные возможности Visual С# Express ..95
Создание .NET-приложений с использованием Visual Studio 2008 ..96
   Некоторые уникальные функциональные возможности Visual Studio 2008 ..97
   Ориентирование на .NET Framework с использованием диалогового окна New Project ..97
   Использование утилиты Solution Explorer ..98
   Утилита Class View ..100
   Утилита Object Browser ..100
   Встроенная поддержка для рефакторинга программного кода ..101
   Возможности для расширения и завертывания кода в определенный контекст ..103
   Утилита Class Designer ..104
   Инструмент Object Ttest Bench ..107
   Интегрированная система документации .NET Framework 3.5 ..108
Дополнительные средства разработки .NET-приложений ..109
Резюме ..109

ЧАСТЬ II. Главные конструкции программирования на С#

Глава 3. Главные конструкции программирования на С#: часть I
Разбор простой программы на С# ..112
   Варианты метода Мain() ..114
   Спецификация кода ошибки в приложении ..114
   Обработка аргументов командной строки ..116
   Указание аргументов командной строки в Visual Studio 2008 ..118
Интересное отклонение от темы: некоторые дополнительные члены класса System.Environment ..118
Класс System.Console ..119
   Базовый ввод и вывод с помощью Console ..120
   Форматирование консольного вывода ..121
   Форматирование числовых данных ..122
   Форматирование числовых данных за пределами консольных приложений ..123
Системные типы данных и их сокращенное обозначение в С# ..124
   Объявление и инициализация переменных ..125
   Применение ключевого слова new для внутренних типов данных ..127
   Иерархия классов типов данных ..127
   Члены числовых типов данных ..129
   Члены System.Boolean ..130
   Члены System.Char ..130
   Выполнение синтаксического анализа значений из строковых данных ..131
Тип System.String ..131
   Базовые операции манипулирования строками ..132
   Конкатенация строк ..133
   Управляющие последовательности символов ..134
   Определение дословных строк ..135
   Строки и равенство ..135
   Неизменная природа строк ..136
   Тип System.Text.StringBuilder ..138
   Типы System.DateTime и System.TimeSpan ..139
Сужающие и расширяющие преобразования типов данных ..140
   Перехват сужающих преобразований данных ..142
   Настройка проверки переполнения в масштабах всего проекта ..144
   Ключевое слово unchecked ..145
   Роль System.Convert ..145
Итерационные конструкции в С# ..145
   Цикл for ..146
   Цикл foreach ..146
   Конструкции while и do/while ..147
Конструкции принятия решений и операции отношения и равенства ..147
   Оператор if/else ..148
   Оператор switch ..149
Резюме ..150
Глава 4. Главные конструкции программирования на С#: часть II
Методы и модификаторы параметров ..151
   Используемое по умолчанию поведение для передачи параметров ..152
   Модификатор out ..153
   Модификатор ref ..154
   Модификатор params ..155
Перегрузка методов ..157
Манипулирование массивами в С# ..159
   Синтаксис инициализации массивов в С# ..160
   Определение массива объектов ..161
   Работа с многомерными массивами ..162
   Использование массивов в качестве параметров (и возвращаемых значений) ..163
   Базовый класс System.Аrray ..164
Тип enum ..165
   Управление базовым типом, используемым для хранения значений перечислений ..166
   Объявление и использование перечислений ..167
   Тип System.Enum ..168
   Динамическое обнаружение пар имя/значение перечисления ..168
Типы структур ..171
   Создание переменных структур ..172
Типы-значения и ссылочные типы ..173
   Типы-значения, ссылочные типы и операция присваивания ..174
   Типы-значения, содержащие ссылочные типы ..176
   Передача ссылочных типов по значению ..178
   Передача ссылочных типов по ссылке ..179
   Типы-значения и ссылочные типы: заключительные детали ..180
Нулевые типы в С# ..181
   Работа с нулевыми типами ..183
   Операция ?? ..183
Резюме ..184
Глава 5. Определение инкапсулированных типов классов
Знакомство с типом класса С# ..185
   Размещение объектов с помощью ключевого слова new ..187
Понятие конструктора класса ..188
   Роль конструктора по умолчанию ..189
   Определение специальных конструкторов ..189
   Еще раз о конструкторе по умолчанию ..190
Роль ключевого слова this ..191
   Построение цепочки вызовов конструкторов с использованием this ..193
   Обзор потока конструктора ..195
Понятие ключевого слова static ..196
   Определение статических методов (и полей) ..197
   Определение статических данных ..197
   Определение статических конструкторов ..200
   Определение статических классов ..201
Основы объектно-ориентированного программирования ..203
   Роль инкапсуляции ..203
   Роль наследования ..204
   Роль полиморфизма ..205
Модификаторы доступа С# ..206
   Модификаторы доступа по умолчанию ..207
   Модификаторы доступа и вложенные типы ..208
Первый принцип: службы инкапсуляции С# ..208
   Инкапсуляция с использованием традиционных методов доступа и изменения ..209
   Инкапсуляция с использованием свойств типа ..210
   Внутреннее представление свойств ..212
   Управление уровнями видимости операторов get/set свойств ..214
   Свойства, доступные только для чтения и только для записи ..214
   Статические свойства ..215
Понятие константных данных ..216
Понятие полей только для чтения ..217
   Статические поля только для чтения ..218
Понятие частичных типов ..218
Документирование исходного кода С# посредством XML ..219
   Генерация файла XML ..221
   Трансформация XML-комментариев кода посредством NDoc ..223
Визуализация плодов нашего труда ..224
Резюме ..225
Глава 6. Понятия наследования и полиморфизма
Базовый механизм наследования ..226
   Спецификация родительского класса ..227
   О множественном наследовании ..228
   Ключевое слово sealed ..229
Изменение диаграмм классов Visual Studio ..230
Второй принцип: подробности о наследовании ..231
   Управление созданием базового класса с помощью ключевого слова base ..233
   Хранение фамильных тайн: ключевое слово protected ..235
   Добавление герметизированного класса ..235
Реализация модели включения/делегации ..236
   Понятие определения вложенных типов ..238
Третий принцип: поддержка полиморфизма в С# ..239
   Ключевые слова virtual и override ..240
   Переопределение виртуальных членов в Visual Studio 2008 ..242
   Герметизированные виртуальные члены ..243
   Понятие абстрактных классов ..243
   Построение полиморфного интерфейса ..245
   Понятие сокрытия членов ..248
Понятие правил приведения к базовому и производному классу ..250
   Ключевое слово as ..251
   Ключевое слово is ..252
Родительский главный класс System.Object ..252
   Переопределение System.Object.ToString() ..255
   Переопределение System.Object.Equals() ..256
   Переопределение System.Object.GetHashCode() ..257
   Тестирование модифицированного класса Person ..257
   Статические члены System.Object ..258
Резюме ..258
Глава 7. Структурированная обработка исключений
Ода ошибкам и исключениям ..259
Роль обработки исключений в .NET ..260
   Элементы обработки исключений в .NET ..261
   Базовый класс System.Exception ..262
Простейший пример ..263
   Выдача обобщенного исключения ..265
   Перехват исключений ..266
Конфигурирование состояния исключения ..267
   Свойство ТаrgetSite ..267
   Свойство StackTrace ..268
   Свойство HelpLink ..269
   Свойство Data ..270
Исключения системного уровня (System.SystemException) ..271
Исключения уровня приложения (System.ApplicationException) ..272
   Создание специальных исключений, способ первый ..273
   Создание специальных исключений, способ второй ..275
   Создание специальных исключений, способ третий ..276
Обработка множества исключений ..277
   Обобщенные операторы catch ..279
   Передача исключений ..279
   Внутренние исключения ..280
Блок finally ..281
Какие исключения могут выдавать методы ..282
К чему приводят необработанные исключения ..283
Отладка необработанных исключений в Visual Studio ..283
Резюме ..284
Глава 8. Время жизни объектов
Классы, объекты и ссылки ..285
Базовые сведения о времени жизни объектов ..286
   CIL-код для new ..287
   Установка для объектных ссылок значения null ..288
Роль, которую исполняют корневые элементы приложения ..289
Поколения объектов ..291
Тип System.GC ..292
   Принудительная активизация процесса сборки мусора ..293
Создание финализируемых объектов ..296
   Переопределение System.Object.Finalize() ..297
   Детали процесса финализации ..299
Создание самоочищаемых объектов ..299
   Повторное использование ключевого слова using в С# ..302
Создание финализируемых и самоочищаемых типов ..303
   Формализованный шаблон очистки ..304
Резюме ..306

ЧАСТЬ III. Дополнительные конструкции программирования на С#

Глава 9. Работа с интерфейсами
Что собой представляют типы интерфейсов ..308
   Сравнение типов интерфейсов с абстрактными базовыми классами ..310
Определение специальных интерфейсов ..312
Реализация интерфейса ..314
Вызов членов интерфейса на уровне объектов ..316
   Получение ссылок на интерфейсы с помощью ключевого слова as ..317
   Получение ссылок на интерфейсы с помощью ключевого слова is ..317
Использование интерфейсов в качестве параметров ..318
Использование интерфейсов в качестве возвращаемых значений ..319
Массивы типов интерфейсов ..320
Реализация интерфейсов в Visual Studio 2008 ..321
Устранение конфликтов на уровне имен за счет явной реализации интерфейсов ..322
Проектирование иерархий интерфейсов ..325
   Множественное наследование в случае типов интерфейсов ..326
Создание перечислимых типов (IEnumerable и IEnumerator) ..328
   Создание методов итераторов с использованием ключевого слова yield ..331
   Создание именованного итератора ..332
   Внутреннее представление метода итератора ..333
Создание клонируемых объектов (ICloneable) ..334
   Более сложный пример клонирования ..336
Создание сравнимых объектов (IComparable) ..339
   Указание нескольких критериев для сортировки (IComparеr) ..341
   Использование специальных свойств и специальных типов для сортировки ..343
Интерфейсы обратного вызова ..343
Резюме ..347
Глава 10. Коллекции и обобщения
Интерфейсы пространства имен System.Collections ..348
   Роль ICollection ..349
   Роль IDictionary ..350
   Роль IDictionaryEnumerator ..350
   Роль IList ..351
Типы классов System.Collections ..351
   Работа с типом ArrayList ..352
   Работа с типом Queue ..353
   Работа с типом Stack ..354
Пространство имен System.Collections.Specialized ..355
Связь между упаковкой, распаковкой и System.Object ..356
   Проблема с операциями упаковки/распаковки ..358
Проблема безопасности типов и строго типизированные коллекции ..359
   Построение специальной коллекции ..359
   Проблемы упаковки и строго типизированные коллекции ..361
Пространство имен System.Collections.Generic ..363
   Исследование типа List ..364
Создание специальных обобщенных методов ..366
   Выведение параметра-типа ..367
Создание обобщенных структур и классов ..369
   Ключевое слово default в обобщенном коде ..369
Создание специальной обобщенной коллекции ..371
   Ограничения специальных обобщенных коллекций ..372
   Ограничение параметров-типов с помощью ключевого слова where ..373
   Недостаток ограничений операций ..375
Создание обобщенных базовых классов ..375
Создание обобщенных интерфейсов ..376
Резюме ..378
Глава 11. Делегаты, события и лямбда-выражения
Понятие типа делегата .NET ..379
Определение делегата на С# ..380
Базовые классы System.MulticastDelegate и System.Delegate ..382
Простейший из возможных пример делегата ..384
   Исследование объекта делегата ..385
Усовершенствование типа Car с помощью делегатов ..386
   Включение группового вызова ..389
   Удаление цели из списка вызовов делегата ..390
Более сложный пример делегата ..391
   Делегаты как параметры ..392
   Анализ кода делегата ..394
Понятие ковариантности делегатов ..395
Создание обобщенных делегатов ..397
   Эмуляция обобщенных делегатов без обобщений ..398
Понятие событий С# ..399
   Ключевое слово event ..400
   "За кулисами" событий ..401
   Прослушивание входящих событий ..402
   Упрощенная регистрация событий с использованием Visual Studio 2008 ..403
   Аккуратное и правильное событие ..404
Обобщенный делегат EventHandler ..406
Понятие анонимных методов С# ..406
   Доступ к "внешним" переменным ..408
Понятие групповых преобразований методов ..408
Лямбда-операция С# 2008 ..410
   Анализ лямбда-выражения ..412
   Обработка аргументов внутри множественных операторов ..413
   Усовершенствование примера CarDelegate с использованием лямбда-выражений ..414
   Лямбда-выражения с несколькими (или нулем) параметров ..415
Резюме ..417
Глава 12. Индексаторы, операции и указатели
Понятие методов-индексаторов ..418
   Индексация объектов с использованием строковых значений ..420
   Перегруженные методы-индексаторы ..421
   Внутреннее представление методов-индексаторов ..422
   Многомерные индексаторы ..422
   Определения индексаторов в интерфейсных типах ..423
Понятие перегрузки операций ..423
   Перегрузка бинарных операций ..424
   А как насчет операций += и -=? ..426
   Перегрузка унарных операций ..427
   Перегрузка операций эквивалентности ..428
   Перегрузка операций сравнения ..428
   Внутреннее представление перегруженных операций ..429
   Финальные соображения относительно перегрузки операций ..431
Понятие преобразований пользовательских типов ..432
   Числовые преобразования ..432
   Преобразования между связанными типами классов ..432
   Создание специальных процедур преобразования ..433
   Дополнительные явные преобразования типа Square ..435
   Определение процедур неявного преобразования ..436
   Внутреннее представление процедур пользовательских преобразований ..437
Работа с типами указателей ..438
   Ключевое слово unsafe ..440
   Работа с операциями * и & ..441
   Небезопасная и безопасная функции Swap ..441
   Доступ к полям через указатели (операция ->) ..442
   Ключевое слово stackalloc ..443
   Закрепление типа ключевым словом fixed ..443
   Ключевое слово sizeof ..444
Директивы препроцессора С# ..445
   Указание областей кода ..445
   Условная компиляция кода ..446
Резюме ..448
Глава 13. Средства языка С# 2008
Понятие неявно типизированных локальных переменных ..449
   Использование var внутри конструкций for each ..450
   Ограничения неявно типизированных переменных ..451
   Неявно типизированные локальные массивы ..452
   Неявно типизированные данные — это строго типизированные данные ..453
   Удобство неявно типизированных локальных переменных ..453
Понятие автоматических свойств ..454
   Взаимодействие с автоматическими свойствами ..455
   Ограничение доступа к автоматическим свойствам ..456
   Автоматические свойства и значения по умолчанию ..456
Понятие расширяющих методов ..457
   Определение расширяющих методов ..458
   Вызов расширяющих методов на уровне экземпляра ..459
   Статический вызов расширяющих методов ..460
   Область действия расширяющего метода ..460
   Импорт типов, определяющих расширяющие методы ..461
   Расширяющие методы в IntelliSense ..462
   Построение и использование расширяющих библиотек ..463
   Расширение интерфейсных типов посредством расширяющих методов ..464
Понятие частичных методов ..466
   Первый взгляд на частичные методы ..466
   Применение частичных методов ..468
Синтаксис инициализаторов объектов ..468
   Вызов специальных конструкторов с синтаксисом инициализации ..470
   Инициализация вложенных типов ..471
   Понятие инициализации коллекций ..472
Понятие анонимных типов ..472
   Внутреннее представление анонимных типов ..473
   Реализация ToString() и GetHashCode() ..475
   Семантика эквивалентности анонимных типов ..475
   Анонимные типы, содержащие в себе анонимные типы ..477
Резюме ..477
Глава 14. Введение в LINQ
Роль LINQ ..478
   Выражения LINQ — строго типизированы и расширяемы ..479
   Основные сборки LINQ ..480
Первый взгляд на выражения запросов LINQ ..481
   LINQ и неявно типизированные локальные переменные ..483
   LINQ и расширяющие методы ..484
   Роль отложенного выполнения ..485
   Роль немедленного выполнения ..486
LINQ и обобщенные коллекции ..487
   Применение выражения LINQ ..487
   LINQ и необобщенные коллекции ..488
   Фильтрация данных с использованием OfТуlе<Т>() ..489
Внутреннее представление операций запросов LINQ ..489
   Построение выражений запросов из операций запросов ..490
   Построение выражений запросов с использованием типа Enumerable и лямбда-выражений ..491
   Построение выражений запросов с использованием перечислимого типа и анонимных методов ..492
   Построение выражений запросов с использованием перечислимого типа и "сырых" делегатов ..492
Исследование операций запросов С# LINQ ..493
   Получение счетчиков с использованием Enumerable ..494
   Построение нового тестового проекта ..495
Запросы LINQ: вещь в себе? ..500
   Трансформация результатов запроса в типы массивов ..501
Резюме ..502

ЧАСТЬ IV. Программирование с использованием сборок .NET

Глава 15. Сборки .NET
Определение специальных пространств имен ..504
   Полностью квалифицированное имя типа ..506
   Определение псевдонимов с помощью ключевого слова using ..507
   Создание вложенных пространств имен ..508
   Пространство имен, используемое в Visual Studio 2008 по умолчанию ..509
Роль сборок .NET ..510
   Сборки повышают возможность повторного использования кода ..510
   Сборки определяют границы типов ..511
   Сборки являются единицами, поддерживающими версии ..511
   Сборки являются самоописываемыми ..511
   Сборки поддаются конфигурированию ..511
Формат сборки .NET ..512
   Заголовок файла Win32 ..512
   Заголовок файла CLR ..513
   CIL-код, метаданные типов и манифест сборки ..513
   Необязательные ресурсы сборки ..514
   Однофайловые и многофайловые сборки ..514
Создание и использование однофайловой сборки ..515
   Изучение манифеста ..519
   Исследование CIL-кода ..520
   Исследование метаданных типов ..521
   Создание клиентского приложения на С# ..521
   Создание клиентского приложения на Visual Basic ..523
   Межъязыковое наследование в действии ..524
Создание и использование многофайловой сборки ..524
   Исследование файла ufо.netmodule ..526
   Исследование файла airvehicles.dll ..526
   Использование многофайловой сборки ..526
Приватные сборки ..527
   Идентичность приватной сборки ..528
   Процесс зондирования ..528
   Конфигурирование приватных сборок ..529
   Конфигурационные файлы и Visual Studio 2008 ..531
   Утилита .NET Framework Configuration ..531
Разделяемые сборки ..533
   Строгие имена ..534
   Назначение строгого имени сборке CarLibrary.dll ..535
   Назначение строгих имен в Visual Studio 2008 ..537
   Установка и удаление разделяемых сборок из GAC ..537
Использование разделяемой сборки ..538
   Изучение манифеста SharedCarLibClient ..539
Конфигурирование разделяемых сборок ..540
   Фиксация текущей версии разделяемой сборки ..541
   Создание разделяемой сборки версии 2.0.0.0 ..541
   Динамическое перенаправление к конкретным версиям разделяемой сборки ..543
   Использование утилиты .NET Framework Configuration ..544
Изучение внутреннего устройства GAC ..545
Сборки политик издателя ..546
   Отключение политик издателя ..547
Элемент ..548
Пространство имен System.Configuration ..549
Конфигурационный файл машины ..550
Резюме ..551
Глава 16. Рефлексия типов, позднее связывание и программирование с использованием атрибутов
Необходимость в метаданных типов ..552
   Просмотр части метаданных перечисления EngineState ..553
   Просмотр части метаданных типа Car ..554
   Изучение блока TypeRef ..555
   Просмотр метаданных самой сборки ..555
   Просмотр метаданных внешних сборок, на которые ссылается текущая сборка ..556
   Просмотр метаданных строковых литералов ..556
Рефлексия ..557
   Класс System.Туpe ..557
   Получение информации о типе с помощью System.Object.GetType() ..558
   Получение информации о типе с помощью System.Type.GetType() ..559
   Получение информации о типе с помощью typeof() ..559
Создание специальной программы для просмотра метаданных ..560
   Рефлексия методов ..560
   Рефлексия полей и свойств ..560
   Рефлексия реализуемых интерфейсов ..561
   Отображение различных дополнительных деталей ..561
   Реализация Main() ..562
   Рефлексия обобщенных типов ..563
   Рефлексия параметров и возвращаемых значений методов ..563
Динамически загружаемые сборки ..565
Рефлексия разделяемых сборок ..567
Позднее связывание ..568
   Класс System.Activator ..569
   Вызов методов без параметров ..570
   Вызов методов с параметрами ..570
Программирование с использованием атрибутов ..571
   Потребители атрибутов ..572
   Применение предопределенных атрибутов в С# ..572
   Указание параметров конструктора для атрибутов ..574
   Атрибут [Obsolete] в действии ..575
   Сокращенное обозначение атрибутов в С# ..575
Создание специальных атрибутов ..576
   Применение специальных атрибутов ..576
   Синтаксис именованных свойств ..577
   Ограничение использования атрибутов ..577
Атрибуты уровня сборки (и уровня модуля) ..578
   Файл AssemblyInfo.cs в Visual Studio 2008 ..579
Рефлексия атрибутов с использованием раннего связывания ..580
Рефлексия атрибутов с использование позднего связывания ..581
Возможное применение рефлексии, позднего связывания и специальных атрибутов на практике ..582
Создание расширяемого приложения ..583
   Создание CommonSnappableTypes.dll ..583
   Создание оснастки на С# ..584
   Создание подключаемого компонента в Visual Basic .NET ..585
   Создание расширяемого приложения Windows Forms ..585
Резюме ..588
Глава 17. Процессы, домены приложений и контексты объектов
Повторный обзор традиционных процессов Win32 ..589
   Общая информация о потоках ..590
Взаимодействие с процессами в рамках платформы .NET ..592
   Перечисление выполняющихся процессов ..594
   Изучение конкретного процесса ..595
   Изучение ряда потоков внутри процесса ..595
   Изучение модулей внутри процесса ..597
   Запуск и остановка процессов программным образом ..598
Домены приложений .NET ..599
   Перечисление доменов приложений процесса ..601
   Создание новых доменов приложений программным образом ..602
   Выгрузка доменов приложений программным образом ..604
Границы контекстов объектов ..605
   Контекстно-свободные и контекстно-зависимые типы ..605
   Определение контекстно-зависимых объектов ..607
   Инспектирование контекста объекта ..607
Подведение итогов по процессам, доменам приложений и контекстам ..609
Резюме ..609
Глава 18. Создание многопоточных приложений
Отношение между процессами, доменами приложений, контекстами и потоками ..610
   Проблемы параллелизма ..612
   Роль синхронизации потоков ..612
Краткое описание делегатов .NET ..613
Асинхронная природа делегатов ..615
   Методы BeginInvoke() и EndInvoke() ..615
   Интерфейс System.IAsyncResult ..616
Вызов метода асинхронным образом ..616
   Синхронизация вызывающего потока ..617
   Роль делегата AsyncCallback ..618
   Роль класса AsyncResult ..620
   Передача и получение специальных данных о состоянии ..620
Пространство имен System.Threading ..621
Класс System.Threading.Thread ..622
   Получение статистических данных о текущем потоке ..623
   Свойство Name ..624
   Свойство Priority ..625
Создание вторичных потоков программным образом ..625
   Работа с делегатом ThreadStart ..626
   Работа с делегатом ParameterizedThreadStart ..628
   Приоритетные и фоновые потоки ..629
Проблемы, связанные с одновременным доступом ..630
   Синхронизация с помощью ключевого слова lock в С# ..632
   Синхронизация с помощью типа System.Threading.Monitor ..634
   Синхронизация с помощью типа System.Threading.Interlocked ..635
   Синхронизация с помощью атрибута [Synchronization] ..636
Программирование с использованием обратных вызовов таймеров ..637
Пул потоков CLR ..639
Роль компонента BackgroundWorker ..641
   Работа с типом BackgroundWorker ..641
   Обработка данных с помощью типа BackgroundWorker ..643
Резюме ..644
Глава 19. Язык CIL и роль динамических сборок
Природа программирования в терминах CIL ..645
Директивы, атрибуты и коды операций в CIL ..646
   Роль директив CIL ..647
   Роль атрибутов CIL ..647
   Роль кодов операций CIL ..647
   Разница между кодами операций и их мнемоническими эквивалентами в CIL ..647
Помещение и извлечение данных из стека в CIL ..648
Двунаправленное проектирование ..650
   Роль меток в коде CIL ..653
   Взаимодействие с CIL: модификация файла *.il ..653
   Компиляция CIL-кода с помощью ilasm.exe ..654
   Компиляция CIL-кода с помощью SharpDevelop ..656
   Роль peverify.exe ..656
Директивы и атрибуты CIL ..657
   Добавление ссылок на внешние сборки в CIL ..657
   Определение текущей сборки в CIL ..658
   Определение пространств имен в CIL ..659
   Определение типов классов в CIL ..659
   Определение и реализация интерфейсов ..660
   Определение структур в CIL ..661
   Определение перечислений ..661
   Определение обобщений в CIL ..662
   Компиляция файла CILTypes.il ..662
Соответствия между типами данных в библиотеке базовых классов .NET, С# и CIL ..663
Определение членов типов в CIL ..664
   Определение полей данных ..664
   Определение конструкторов для типов в CIL ..665
   Определение свойств ..665
   Определение параметров членов ..666
Изучение кодов операций в CIL ..667
   Директива .maxstack ..669
   Объявление локальных переменных в CIL ..670
   Отображение параметров на локальные переменные в CIL ..671
   Скрытая ссылка this ..671
   Представление итерационных конструкций в CIL ..672
Создание сборки .NET на CIL ..672
   Создание CILCars.dll ..673
   Создание CILCarClient.exe ..675
Динамические сборки ..677
   Пространство имен System.Reflection.Emit ..678
   Роль System.Reflection.Emit.ILGenerator ..678
   Создание динамической сборки ..679
   Генерация сборки и набора модулей ..681
   Роль типа ModuleBuilder ..682
   Генерация типа HelloClass и принадлежащей ему строковой переменной ..683
   Генерация конструкторов ..684
   Генерация метода SayHello() ..685
   Использование динамически сгенерированной сборки ..685
Резюме ..686

(окончание на следующей странице)




Страницы » 1 2



Скачать книгу: Эндрю Троелсен - Язык программирования С# 2008 и платформа .NET 3.5


Форма входа

Облако тегов

сказки кулинария Рыбалка бисер родители малышам аудиокниги аудиосказки html Веб дизайн Web дизайн сайтостроение css беременность и роды Вязание Детям скачать воспитание детей проза журналы техника аудиокнига AVI мультфильмы приключения

Книги

Абрамова Л.П.Бyшки-бapaшки. Пaльчикoвыe игpы (1-3 года)
Скачать

Популярное

• Флеш-открытки с Днем рождения. Коллекция 
• Торговые советники FOREX (торговые роботы) 
• Мамины сказки: Доброта. Как воспитать ребенка добрым 
• Сказки дядюшки Римуса (аудиокнига, mp3) 
• Macromedia Flash Professional 8 на примерах (2006) 
• Флеш-открытки к женскому дню 8 Марта. Коллекция 
• Коллекция флеш-открыток о любви 
• Мамины сказки: Ваш ребенок - лидер. Как воспитать ребенка лидером 
• Мамины сказки: Антикапризин. Сказки для исцеления от капризов 
• Восточные сладости (2002) 
• Флеш-открытки. Новый год и Рождество. Большая коллекция 
• Macromedia Flash 8 для начинающих (видео-курс) 
• Азбука вежливости (1984) 
• Следы зверей и птиц. Энциклопедический справочник-определитель (2007) 
• Вниз по волшебной реке (1992)