C# 5.0. Справочник. Полное описание языка
Джозеф Албахари, Бен Албахари
Данное руководство, ставшее бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 5.0 и .NET CLR. Уникально организованное по концепциям и сценариям использования, обновленное 5-е издание книги предлагает реорганизованные разделы, посвященные параллелизму, многопоточности и параллельному программированию, а также включает подробные материалы по новому средству C# 5.0 – асинхронным функциям.
Проверенная более чем 20 экспертами, в числе которых Эрик Липперт, Стивен Тауб, Крис Барроуз и Джон Скит, эта книга содержит все, что необходимо для освоения C# 5.0. Она широко известна как исчерпывающий справочник по языку.
- Изучите основы языка C#, включая синтаксис, типы и переменные
- Исследуйте более сложные темы, такие как небезопасный код и вариантность типов
- Научитесь пользоваться языком LINQ благодаря трем посвященным ему главам
- Освойте контракты кода, динамическое программирование и параллельное программирование
- Научитесь работать со средствами .NET, в том числе с рефлексией, сборками, управлением памятью, безопасностью, вводом-выводом, XML, коллекциями, взаимодействием с сетью и собственной поддержкой взаимодействия.
Издательство: Вильямс, 2013 г.
ISBN 978-5-8459-1819-2
Количество страниц: 1054.
Содержание книги «C# 5.0. Справочник. Полное описание языка»:
- 27 Об авторах
- 28 Благодарности
- 29 Предисловие
- 29 Предполагаемая читательская аудитория
- 30 Как организована эта книга
- 30 Что требуется для работы с этой книгой
- 30 Соглашения, используемые в этой книге
- 31 Использование примеров кода
- 32 От издательства
- 33 Глава 1. Введение в С# и .NET Framework
- 33 Объектная ориентация
- 34 Безопасность в отношении типов
- 34 Управление памятью
- 35 Поддержка платформ
- 35 Отношения C# и CLR
- 35 CLR и .NET Framework
- 36 C# и Windows Runtime
- 38 Что нового в C# 5.0
- 38 Что нового в C# 4.0
- 39 Что нового в C# 3.0
- 41 Глава 2. Основы языка С#
- 41 Первая программа на C#
- 43 Компиляция
- 44 Синтаксис
- 44 Идентификаторы и ключевые слова
- 45 Литералы, знаки пунктуации и операции
- 46 Комментарии
- 46 Основы типов
- 46 Примеры предопределенных типов
- 47 Примеры специальных типов
- 49 Преобразования
- 50 Типы значений и ссылочные типы
- 53 Классификация предопределенных типов
- 54 Числовые типы
- 54 Числовые литералы
- 56 Числовые преобразования
- 56 Арифметические операции
- 57 Операции инкремента и декремента
- 57 Специальные целочисленные операции
- 58 8- и 16-битные целочисленные типы
- 59 Специальные значения fl oat и double
- 60 Сравнение double и decimal
- 60 Ошибки округления вещественных чисел
- 61 Булевские типы и операции
- 61 Булевские преобразования
- 61 Операции сравнения и проверки равенства
- 62 Условные операции
- 63 Строки и символы
- 63 Символьные преобразования
- 63 Строковый тип
- 65 Массивы
- 65 Стандартная инициализация элементов
- 66 Многомерные массивы
- 67 Упрощенные выражения инициализации массивов
- 68 Проверка границ
- 68 Переменные и параметры
- 69 Стек и куча
- 70 Определенное присваивание
- 71 Стандартные значения
- 71 Параметры
- 76 Объявление неявно типизированных локальных переменных с помощью var
- 77 Выражения и операции
- 77 Первичные выражения
- 77 Пустые выражения
- 77 Выражения присваивания
- 78 Приоритеты операций и ассоциативность
- 79 Таблица операций
- 81 Операторы
- 82 Операторы объявления
- 82 Операторы выражений
- 83 Операторы выбора
- 86 Операторы итераций
- 87 Операторы перехода
- 89 Разные операторы
- 89 Пространства имен
- 90 Директива using
- 90 Правила внутри пространств имен
- 92 Назначение псевдонимов типам и пространствам имен
- 92 Дополнительные возможности пространств имен
- 41 Первая программа на C#
- 95 Глава 3. Создание типов в С#
- 95 Классы
- 95 Поля
- 96 Методы
- 97 Конструкторы экземпляров
- 99 Инициализаторы объектов
- 100 Ссылка this
- 100 Свойства
- 102 Индексаторы
- 103 Константы
- 105 Статические конструкторы
- 106 Статические классы
- 106 Финализаторы
- 106 Частичные типы и методы
- 108 Наследование
- 108 Полиморфизм
- 109 Приведение и ссылочные преобразования
- 111 Виртуальные функции-члены
- 112 Абстрактные классы и абстрактные члены
- 112 Сокрытие унаследованных членов
- 113 Запечатывание функций и классов
- 113 Ключевое слово base
- 114 Конструкторы и наследование
- 115 Перегрузка и распознавание
- 116 Тип object
- 117 Упаковка и распаковка
- 118 Статическая проверка типов и проверка типов во время выполнения
- 118 Метод GetType и операция typeof
- 119 Метод ToString
- 119 Список членов object
- 119 Структуры
- 120 Семантика конструирования структуры
- 120 Модификаторы доступа
- 121 Примеры
- 121 Дружественные сборки
- 122 Перекрытие доступности
- 122 Ограничения, накладываемые на модификаторы доступа
- 122 Интерфейсы
- 124 Расширение интерфейса
- 124 Явная реализация членов интерфейса
- 124 Реализация виртуальных членов интерфейса
- 125 Повторная реализация члена интерфейса в подклассе
- 126 Интерфейсы и упаковка
- 127 Перечисления
- 128 Преобразования перечислений
- 129 Перечисления флагов
- 129 Операции над перечислениями
- 130 Проблемы безопасности типов
- 131 Вложенные типы
- 132 Обобщения
- 132 Обобщенные типы
- 133 Для чего предназначены обобщения
- 134 Обобщенные методы
- 135 Объявление параметров типа
- 135 Операция typeof и несвязанные обобщенные типы
- 136 Стандартное обобщенное значение
- 136 Ограничения обобщений
- 137 Создание подклассов для обобщенных классов
- 138 Самоссылающиеся объявления обобщений
- 138 Статические данные
- 138 Параметры типа и преобразования
- 139 Ковариантность
- 142 Контравариантность
- 143 Сравнение обобщений C# и шаблонов C++
- 95 Классы
- 145 Глава 4. Дополнительные средства С#
- 145 Делегаты
- 146 Написание подключаемых методов с помощью делегатов
- 147 Групповые делегаты
- 148 Цели в виде методов экземпляра и статических методов
- 149 Обобщенные типы делегатов
- 149 Делегаты Func и Action
- 150 Сравнение делегатов и интерфейсов
- 151 Совместимость делегатов
- 153 События
- 155 Стандартный шаблон событий
- 158 Средства доступа к событию
- 159 Модификаторы событий
- 159 Лямбда-выражения
- 160 Явное указание типов лямбда-параметров
- 160 Захватывание внешних переменных
- 163 Анонимные методы
- 163 Операторы try и исключения
- 165 Конструкция catch
- 166 Блок finally
- 168 Генерация исключений
- 169 Ключевые свойства System.Exception
- 169 Общие типы исключений
- 170 Шаблон методов TryXXX
- 171 Альтернативы исключениям
- 171 Перечисление и итераторы
- 171 Перечисление
- 172 Инициализаторы коллекций
- 172 Итераторы
- 173 Семантика итератора
- 175 Компоновка последовательностей
- 175 Типы, допускающие значение null
- 176 Структура Nullable<T>
- 177 Подъем операций
- 179 Тип bool? с операциями & и |
- 179 Операция объединения с null
- 179 Сценарии для типов, допускающих null
- 180 Альтернативы типам, допускающим значение null
- 181 Перегрузка операций
- 181 Функции операций
- 182 Перегрузка операций эквивалентности и сравнения
- 182 Специальные неявные и явные преобразования
- 183 Перегрузка true и false
- 184 Расширяющие методы
- 185 Цепочки расширяющих методов
- 185 Неоднозначность и разрешение
- 186 Анонимные типы
- 187 Динамическое связывание
- 188 Сравнение статического и динамического связываний
- 189 Специальное связывание
- 189 Языковое связывание
- 190 Исключение RuntimeBinderException
- 190 Представление dynamic во время выполнения
- 191 Динамические преобразования
- 192 Сравнение var и dynamic
- 192 Динамические выражения
- 193 Динамические вызовы без динамических получателей
- 193 Статические типы в динамических выражениях
- 194 Невызываемые функции
- 195 Атрибуты
- 195 Классы атрибутов
- 196 Именованные и позиционные параметры атрибутов
- 196 Цели атрибутов
- 196 Указание нескольких атрибутов
- 197 Атрибуты информации о вызывающем компоненте (C# 5)
- 198 Небезопасный код и указатели
- 198 Основы указателей
- 199 Небезопасный код
- 199 Оператор fixed
- 200 Операция указателя на член
- 200 Массивы
- 201 void*
- 202 Указатели на неуправляемый код
- 202 Директивы препроцессора
- 203 Условные атрибуты
- 204 Директива #pragma warning
- 204 XML-документация
- 205 Стандартные XML-дескрипторы документации
- 206 Дескрипторы, определяемые пользователем
- 206 Перекрестные ссылки на типы или члены
- 145 Делегаты
- 209 Глава 5. Обзор .NET Framework
- 211 Среда CLR и ядро платформы
- 211 Системные типы
- 212 Обработка текста
- 212 Коллекции
- 212 Запросы
- 212 XML
- 213 Диагностика и контракты кода
- 213 Параллелизм и асинхронность
- 213 Потоки данных и ввод-вывод
- 213 Работа с сетями
- 214 Сериализация
- 214 Сборки, рефлексия и атрибуты
- 214 Динамическое программирование
- 214 Безопасность
- 215 Расширенная многопоточность
- 215 Параллельное программирование
- 215 Домены приложений
- 215 Собственная возможность взаимодействия и взаимодействие с COM
- 216 Прикладные технологии
- 216 Технологии пользовательских интерфейсов
- 218 Технологии серверной части
- 220 Технологии распределенных систем
- 211 Среда CLR и ядро платформы
- 223 Глава 6. Основы .NET Framework
- 223 Обработка строк и текста
- 223 Тип char
- 225 Тип string
- 229 Сравнение строк
- 231 Класс StringBuilder
- 232 Кодировка текста и Unicode
- 235 Дата и время
- 236 Структура TimeSpan
- 237 Структуры DateTime и DateTimeOffset
- 242 Даты и часовые пояса
- 242 DateTime и часовые пояса
- 243 DateTimeOffset и часовые пояса
- 243 TimeZone и TimeZoneInfo
- 247 Летнее время и DateTime
- 248 Форматирование и разбор
- 249 ToString и Parse
- 249 Поставщики форматов
- 253 Стандартные форматные строки и флаги разбора
- 254 Форматные строки для чисел
- 256 Перечисление NumberStyles
- 258 Форматные строки для даты/времени
- 260 Перечисление DateTimeStyles
- 260 Форматные строки для перечислений
- 261 Другие механизмы преобразования
- 261 Класс Convert
- 263 Класс XmlConvert
- 263 Преобразователи типов
- 264 Класс BitConverter
- 265 Глобализация
- 265 Контрольный перечень глобализации
- 265 Тестирование
- 266 Работа с числами
- 266 Преобразования
- 266 Класс Math
- 267 Структура BigInteger
- 268 Структура Complex
- 269 Класс Random
- 270 Перечисления
- 270 Преобразования для перечислений
- 272 Перечисление значений enum
- 272 Как работают перечисления
- 273 Кортежи
- 274 Сравнение кортежей
- 274 Структура Guid
- 275 Сравнение эквивалентности
- 275 Эквивалентность значений и ссылочная эквивалентность
- 276 Стандартные протоколы эквивалентности
- 280 Эквивалентность и специальные типы
- 284 Сравнение порядка
- 285 Интерфейсы IComparable
- 286 < и >
- 287 Реализация интерфейсов IComparable
- 288 Служебные классы
- 288 Класс Console
- 288 Класс Environment
- 289 Класс Process
- 223 Обработка строк и текста
- 291 Глава 7. Коллекции
- 291 Перечисление
- 292 IEnumerable и IEnumerator
- 293 IEnumerable<T> и IEnumerator<T>
- 295 Реализация интерфейсов перечисления
- 298 Интерфейсы ICollection и IList
- 299 ICollection<T> и ICollection
- 300 IList<T> и IList
- 301 IReadOnlyList<T>
- 302 Класс Array
- 304 Конструирование и индексация
- 306 Перечисление
- 306 Длина и ранг
- 306 Поиск
- 308 Сортировка
- 309 Обращение порядка элементов
- 309 Копирование
- 309 Преобразование и изменение размера
- 310 Списки, очереди, стеки и наборы
- 310 List<T> и ArrayList
- 312 LinkedList<T>
- 314 Queue<T> и Queue
- 315 Stack<T> и Stack
- 315 BitArray
- 316 HashSet<T> и SortedSet<T>
- 317 Словари
- 318 IDictionary<TKey,TValue>
- 320 IDictionary
- 320 Dictionary<TKey,TValue> и Hashtable
- 322 OrderedDictionary
- 322 ListDictionary и HybridDictionary
- 322 Отсортированные словари
- 324 Настраиваемые коллекции и прокси
- 324 Collection<T> и CollectionBase
- 326 KeyedCollection<TKey,TItem> и DictionaryBase
- 329 ReadOnlyCollection<T>
- 329 Подключение протоколов эквивалентности и порядка
- 330 IEqualityComparer и EqualityComparer
- 332 IComparer и Comparer
- 334 StringComparer
- 335 IStructuralEquatable и IStructuralComparable
- 291 Перечисление
- 337 Глава 8. Запросы LINQ
- 337 Начало работы
- 339 Текучий синтаксис
- 339 Выстраивание в цепочки операций запросов
- 342 Составление лямбда-выражений
- 344 Естественный порядок
- 344 Другие операции
- 345 Выражения запросов
- 347 Переменные диапазона
- 348 Сравнение синтаксиса запросов и синтаксиса SQL
- 348 Сравнение синтаксиса запросов и текучего синтаксиса
- 348 Запросы со смешанным синтаксисом
- 349 Отложенное выполнение
- 350 Повторная оценка
- 350 Захваченные переменные
- 351 Как работает отложенное выполнение
- 353 Построение цепочки декораторов
- 354 Каким образам выполняются запросы
- 355 Подзапросы
- 357 Подзапросы и отложенное выполнение
- 358 Стратегии композиции
- 358 Последовательное построение запросов
- 359 Ключевое слово into
- 360 Упаковка запросов
- 361 Стратегии проекции
- 361 Инициализаторы объектов
- 362 Анонимные типы
- 362 Ключевое слово let
- 363 Интерпретируемые запросы
- 365 Каким образом работают интерпретируемые запросы
- 367 Комбинирование интерпретируемых и локальных запросов
- 368 AsEnumerable
- 369 LINQ to SQL и Entity Framework
- 370 Сущностные классы LINQ to SQL
- 371 Сущностные классы Entity Framework
- 372 DataContext и ObjectContext
- 376 Ассоциации
- 378 Отложенное выполнение в L2S и EF
- 379 DataLoadOptions
- 380 Энергичная загрузка в Entity Framework
- 380 Обновления
- 382 Отличия между API-интерфейсами L2S и EF
- 383 Построение выражений запросов
- 383 Сравнение делегатов и деревьев выражений
- 385 AsQueryable
- 385 Деревья выражений
- 389 Глава 9. Операции LINQ
- 390 Обзор
- 390 Последовательность→последовательность
- 392 Последовательность→элемент или значение
- 392 Ничего→последовательность
- 393 Выполнение фильтрации
- 393 Where
- 395 Take и Skip
- 396 TakeWhile и SkipWhile
- 396 Distinct
- 397 Выполнение проекции
- 397 Select
- 401 SelectMany
- 408 Выполнение соединения
- 408 Join и GroupJoin
- 416 Операция Zip
- 416 Упорядочение
- 416 OrderBy, OrderByDescending, ThenBy и ThenByDescending
- 419 Группирование
- 419 GroupBy
- 422 Операции над множествами
- 422 Concat и Union
- 422 Intersect и Except
- 423 Методы преобразования
- 423 OfType и Cast
- 425 ToArray, ToList, ToDictionary и ToLookup
- 425 AsEnumerable и AsQueryable
- 426 Операции элементов
- 426 First, Last и Single
- 427 ElementAt
- 427 DefaultIfEmpty
- 427 Методы агрегирования
- 428 Count и LongCount
- 428 Min и Max
- 429 Sum и Average
- 429 Aggregate
- 432 Квантификаторы
- 432 Contains и Any
- 432 All и SequenceEqual
- 433 Методы генерации
- 433 Empty
- 433 Range и Repeat
- 390 Обзор
- 435 Глава 10. LINQ to XML
- 435 Обзор архитектуры
- 435 Что собой представляет DOM-модель?
- 436 DOM-модель LINQ to XML
- 436 Обзор X-DOM
- 438 Загрузка и разбор
- 439 Сохранение и сериализация
- 439 Создание экземпляра X-DOM
- 440 Функциональное построение
- 440 Указание содержимого
- 441 Автоматическое глубокое копирование
- 441 Навигация и запросы
- 442 Навигация по дочерним узлам
- 445 Навигация по родительским узлам
- 445 Навигация по равноправным узлам
- 446 Навигация по атрибутам
- 446 Обновление X-DOM
- 446 Обновление простых значений
- 447 Обновление дочерних узлов и атрибутов
- 447 Обновление через Parent
- 449 Работа со значениями
- 449 Установка значений
- 449 Получение значений
- 450 Значения и узлы со смешанным содержимым
- 451 Автоматическая конкатенация XText
- 451 Документы и объявления
- 451 XDocument
- 453 Объявления XML
- 454 Имена и пространства имен
- 455 Пространства имен в XML
- 456 Указание пространств имен в X-DOM
- 457 Модель X-DOM и стандартные пространства имен
- 458 Префиксы
- 460 Аннотации
- 461 Проецирование модели X-DOM
- 462 Устранение пустых элементов
- 463 Потоковая передача проекции
- 464 Трансформирование X-DOM
- 435 Обзор архитектуры
- 467 Глава 11. Другие технологии XML
- 468 XmlReader
- 469 Чтение узлов
- 471 Чтение элементов
- 474 Чтение атрибутов
- 475 Пространства имен и префиксы
- 476 XmlWriter
- 477 Запись атрибутов
- 477 Запись других типов узлов
- 477 Пространства имен и префиксы
- 478 Шаблоны для использования XmlReader/XmlWriter
- 478 Работа с иерархическими данными
- 480 Смешивание XmlReader/XmlWriter с X-DOM
- 482 XmlDocument
- 482 Загрузка и сохранение XmlDocument
- 483 Обход XmlDocument
- 483 InnerText и InnerXml
- 484 Создание и манипулирование узлами
- 484 Пространства имен
- 485 XPath
- 486 Общие операции XPath
- 487 XPathNavigator
- 488 Выполнение запросов с пространствами имен
- 489 XPathDocument
- 489 XSD и проверка достоверности схемы
- 490 Выполнение проверки достоверности схемы
- 492 XSLT
- 468 XmlReader
- 493 Глава 12. Освобождение и сборка мусора
- 493 IDisposable, Dispose и Close
- 494 Стандартная семантика освобождения
- 495 Когда выполнять освобождение
- 496 Подключаемое освобождение
- 498 Очистка полей при освобождении
- 498 Автоматическая сборка мусора
- 500 Корневые объекты
- 500 Сборка мусора и WinRT
- 501 Финализаторы
- 502 Вызов метода Dispose из финализатора
- 503 Восстановление
- 505 Как работает сборщик мусора?
- 506 Технологии оптимизации
- 508 Принудительный запуск сборки мусора
- 509 Нагрузка на память
- 509 Утечки управляемой памяти
- 511 Таймеры
- 512 Диагностика утечек памяти
- 512 Слабые ссылки
- 513 Слабые ссылки и кеширование
- 514 Слабые ссылки и события
- 493 IDisposable, Dispose и Close
- 517 Глава 13. Диагностика и контракты кода
- 517 Условная компиляция
- 518 Сравнение условной компиляции и статических переменных-флагов
- 519 Атрибут Conditional
- 520 Классы Debug и Trace
- 521 Fail и Assert
- 522 TraceListener
- 523 Сброс и закрытие прослушивателей
- 524 Обзор контрактов кода
- 524 Зачем использовать контракты кода?
- 526 Принципы, лежащие в основе контрактов
- 528 Предусловия
- 528 Contract.Requires
- 530 Contract.Requires<TException>
- 531 Contract.EndContractBlock
- 532 Предусловия и переопределенные методы
- 532 Постусловия
- 532 Contract.Ensures
- 533 Contract.EnsuresOnThrow<TException>
- 533 Contract.Result<T> и Contract.ValueAtReturn<T>
- 533 Contract.OldValue<T>
- 534 Постусловия и переопределенные методы
- 534 Утверждения и инварианты объектов
- 534 Утверждения
- 535 Инварианты объектов
- 536 Контракты на интерфейсах и абстрактных методах
- 537 Обработка нарушения контракта
- 538 Событие ContractFailed
- 538 Исключения внутри условий контракта
- 539 Избирательное применение контрактов
- 539 Контракты в окончательных сборках
- 540 Проверка на стороне вызывающего компонента
- 540 Статическая проверка контрактов
- 541 Атрибут ContractVerification
- 541 Базовые уровни
- 542 Атрибут SuppressMessage
- 542 Интеграция с отладчиком
- 542 Присоединение и останов
- 543 Атрибуты отладчика
- 543 Процессы и потоки процессов
- 543 Исследование выполняющихся процессов
- 544 Исследование потоков в процессе
- 544 StackTrace и StackFrame
- 546 Журналы событий Windows
- 546 Запись в журнал событий
- 547 Чтение журнала событий
- 547 Мониторинг журнала событий
- 548 Счетчики производительности
- 548 Перечисление доступных счетчиков производительности
- 550 Чтение данных счетчика производительности
- 551 Создание счетчиков и запись данных о производительности
- 552 Класс Stopwatch
- 517 Условная компиляция
- 553 Глава 14. Параллелизм и асинхронность
- 553 Введение
- 554 Многопоточная обработка
- 554 Создание потока
- 556 Join и Sleep
- 556 Блокировка
- 558 Локальное или разделяемое состояние
- 560 Блокировка и безопасность потоков
- 561 Передача данных потоку
- 562 Обработка исключений
- 564 Потоки переднего плана или фоновые потоки
- 565 Приоритет потока
- 565 Передача сигналов
- 566 Многопоточность в обогащенных клиентских приложениях
- 567 Контексты синхронизации
- 568 Пул потоков
- 570 Задачи
- 571 Запуск задачи
- 572 Возврат значений
- 573 Исключения
- 574 Продолжение
- 576 TaskCompletionSource
- 578 Task.Delay
- 578 Принципы асинхронности
- 578 Сравнение синхронных и асинхронных операций
- 579 Что собой представляет асинхронное программирование?
- 580 Асинхронное программирование и продолжение
- 581 Важность языковой поддержки
- 583 Асинхронные функции в C# 5.0
- 583 Ожидание
- 589 Написание асинхронных функций
- 593 Асинхронные лямбда-выражения
- 594 Асинхронные методы в WinRT
- 594 Асинхронность и контексты синхронизации
- 596 Оптимизация
- 598 Асинхронные шаблоны
- 598 Отмена
- 600 Сообщение о ходе работ
- 602 Асинхронный шаблон, основанный на задачах
- 602 Комбинаторы задач
- 606 Устаревшие шаблоны
- 606 Модель асинхронного программирования
- 607 Асинхронный шаблон на основе событий
- 608 BackgroundWorker
- 609 Глава 15. Потоки данных и ввод-вывод
- 609 Потоковая архитектура
- 611 Использование потоков
- 612 Чтение и запись
- 613 Поиск
- 614 Закрытие и сброс
- 614 Тайм-ауты
- 614 Безопасность в отношении потоков управления
- 615 Потоки с опорными хранилищами
- 615 FileStream
- 618 MemoryStream
- 619 PipeStream
- 623 BufferedStream
- 624 Адаптеры потоков
- 624 Текстовые адаптеры
- 629 Двоичные адаптеры
- 630 Закрытие и освобождение адаптеров потоков
- 631 Потоки со сжатием
- 632 Сжатие в памяти
- 633 Работа с zip-файлами
- 634 Операции с файлами и каталогами
- 634 Класс File
- 637 Класс Directory
- 638 FileInfo и DirectoryInfo
- 638 Path
- 640 Специальные папки
- 642 Запрашивание информации о томе
- 642 Перехват событий файловой системы
- 643 Файловый ввод-вывод в Windows Runtime
- 644 Работа с каталогами
- 645 Работа с файлами
- 645 Изолированное хранилище в приложениях Metro
- 646 Размещенные в памяти файлы
- 646 Размещенные в памяти файлы и произвольный ввод-вывод файлов
- 647 Размещенные в памяти файлы и разделяемая память
- 647 Работа с аксессорами представлений
- 648 Изолированное хранилище
- 649 Типы изоляции
- 651 Чтение и запись в изолированное хранилище
- 652 Местоположение хранилища
- 653 Перечисление изолированного хранилища
- 655 Глава 16. Взаимодействие с сетью
- 655 Сетевая архитектура
- 658 Адреса и порты
- 659 Идентификаторы URI
- 661 Классы клиентской стороны
- 661 WebClient
- 663 WebRequest и WebResponse
- 664 HttpClient
- 668 Прокси-серверы
- 670 Аутентификация
- 672 Обработка исключений
- 673 Работа с HTTP
- 673 Заголовки
- 674 Строки запросов
- 675 Выгрузка данных формы
- 676 Cookie-наборы
- 677 Аутентификация на основе форм
- 678 SSL
- 679 Реализация HTTP-сервера
- 681 Использование FTP
- 683 Использование DNS
- 684 Отправка сообщений электронной почты с помощью SmtpClient
- 685 Использование TCP
- 687 Параллелизм и TCP
- 688 Получение почты POP3 с помощью TCP
- 690 TCP в Windows Runtime
- 693 Глава 17. Сериализация
- 693 Концепции сериализации
- 693 Механизмы сериализации
- 696 Форматеры
- 696 Сравнение явной и неявной сериализации
- 697 Сериализатор контрактов данных
- 697 Сравнение DataContractSerializer и NetDataContractSerializer
- 698 Использование сериализаторов
- 700 Сериализация подклассов
- 702 Объектные ссылки
- 704 Переносимость версий
- 704 Упорядочение членов
- 705 Пустые значения и null
- 706 Контракты данных и коллекции
- 707 Элементы коллекции, являющиеся подклассами
- 707 Настройка имен коллекции и элементов
- 708 Расширение контрактов данных
- 708 Ловушки сериализации и десериализации
- 710 Возможность взаимодействия с помощью [Serializable]
- 711 Возможность взаимодействия с помощью IXmlSerializable
- 712 Двоичный сериализатор
- 712 Начало работы
- 713 Атрибуты двоичной сериализации
- 713 [NonSerialized]
- 714 [OnDeserializing] и [OnDeserialized]
- 715 [OnSerializing] и [OnSerialized]
- 715 [OptionalField] и поддержка версий
- 716 Двоичная сериализация с помощью ISerializable
- 718 Создание подклассов из сериализируемых классов
- 720 Сериализация XML
- 720 Начало работы с сериализацией на основе атрибутов
- 722 Подклассы и дочерние объекты
- 724 Сериализация коллекций
- 727 IXmlSerializable
- 693 Концепции сериализации
- 729 Глава 18. Сборки
- 729 Содержимое сборки
- 730 Манифест сборки
- 731 Манифест приложения
- 732 Модули
- 733 Класс Assembly
- 734 Строгие имена и подписание сборок
- 734 Назначение сборке строгого имени
- 735 Отложенное подписание
- 736 Имена сборок
- 737 Полностью заданные имена
- 737 Класс AssemblyName
- 738 Информационная и файловая версии сборки
- 738 Подпись Authenticode
- 740 Подписание с помощью системы Authenticode
- 741 Проверка достоверности подписей Authenticode
- 742 Глобальный кеш сборок
- 743 Установка сборок в GAC
- 744 GAC и поддержка версий
- 744 Ресурсы и подчиненные сборки
- 746 Непосредственное встраивание ресурсов
- 747 Файлы .resources
- 747 Файлы .resx
- 750 Подчиненные сборки
- 752 Культуры и подкультуры
- 752 Разрешение и загрузка сборок
- 753 Правила разрешения сборок и типов
- 754 Событие AssemblyResolve
- 754 Загрузка сборок
- 757 Развертывание сборок за пределами базовой папки
- 759 Упаковка однофайловой исполняемой сборки
- 760 Избирательное исправление
- 760 Работа со сборками, не имеющими ссылок на этапе компиляции
- 729 Содержимое сборки
- 763 Глава 19. Рефлексия и метаданные
- 764 Рефлексия и активизация типов
- 764 Получение экземпляра Type
- 766 Имена типов
- 767 Базовые типы и интерфейсы
- 768 Создание экземпляров типов
- 769 Обобщенные типы
- 770 Рефлексия и вызов членов
- 772 Типы членов
- 774 Сравнение членов C# и членов CLR
- 775 Члены обобщенных типов
- 775 Динамический вызов члена
- 776 Параметры методов
- 778 Использование делегатов для повышения производительности
- 778 Доступ к неоткрытым членам
- 779 Обобщенные методы
- 780 Анонимный вызов членов обобщенного интерфейса
- 782 Рефлексия сборок
- 782 Загрузка сборки в контекст, предназначенный только для рефлексии
- 783 Модули
- 783 Работа с атрибутами
- 783 Основы атрибутов
- 785 Атрибут AttributeUsage
- 785 Определение собственного атрибута
- 786 Извлечение атрибутов во время выполнения
- 788 Извлечение атрибутов в контексте, предназначенном только для рефлексии
- 788 Динамическая генерация кода
- 789 Генерация IL с помощью DynamicMethod
- 790 Стек оценки
- 791 Передача аргументов динамическому методу
- 792 Генерация локальных переменных
- 793 Ветвление
- 793 Создание объектов и вызов методов экземпляра
- 795 Обработка исключений
- 795 Выпуск сборок и типов
- 797 Сохранение сгенерированных сборок
- 797 Объектная модель Refl ection.Emit
- 798 Выпуск членов типа
- 799 Выпуск методов
- 800 Выпуск полей и свойств
- 802 Выпуск конструкторов
- 803 Присоединение атрибутов
- 804 Выпуск обобщенных методов и типов
- 804 Определение обобщенных методов
- 805 Определение обобщенных типов
- 805 Сложности, связанные с генерацией
- 805 Несозданные закрытые обобщения
- 807 Циклические зависимости
- 809 Синтаксический разбор IL
- 809 Написание дизассемблера
- 764 Рефлексия и активизация типов
- 815 Глава 20. Динамическое программирование
- 815 Исполняющая среда динамического языка
- 817 Унификация числовых типов
- 818 Динамическое разрешение перегруженных членов
- 818 Упрощение шаблона Посетитель
- 821 Анонимный вызов членов обобщенного типа
- 823 Реализация динамических объектов
- 824 DynamicObject
- 826 ExpandoObject
- 827 Взаимодействие с динамическими языками
- 828 Передача состояния между C# и сценарием
- 829 Глава 21. Безопасность
- 829 Разрешения
- 830 CodeAccessPermission и PrincipalPermission
- 832 PermissionSet
- 833 Сравнение декларативной и императивной безопасности
- 833 Безопасность доступа к коду (CAS)
- 836 Как применяется CAS
- 836 Проверка полного доверия
- 836 Разрешение вызывающих компонентов с частичным доверием
- 837 Повышение привилегий
- 837 APTCA и [SecurityTransparent]
- 839 Модель прозрачности
- 840 Как работает модель прозрачности
- 842 Как создавать библиотеки APTCA с применением прозрачности
- 845 Прозрачность в сценариях с полным доверием
- 847 Помещение в песочницу другой сборки
- 848 Утверждение разрешений
- 850 Подсистема безопасности операционной системы
- 851 Выполнение под учетной записью стандартного пользователя
- 852 Повышение полномочий до административных и виртуализация
- 853 Безопасность на основе удостоверений и ролей
- 853 Назначение пользователей и ролей
- 854 Обзор криптографии
- 855 Защита данных Windows
- 856 Хеширование
- 857 Симметричное шифрование
- 859 Шифрование в памяти
- 860 Соединение в цепочку потоков шифрования
- 861 Освобождение объектов шифрования
- 862 Управление ключами
- 862 Шифрование с открытым ключом и подписание
- 863 Класс RSA
- 864 Цифровые подписи
- 829 Разрешения
- 867 Глава 22. Расширенная многопоточность
- 868 Обзор синхронизации
- 868 Монопольное блокирование
- 869 Оператор lock
- 869 Monitor.Enter и Monitor.Exit
- 870 Выбор объекта синхронизации
- 871 Когда необходима блокировка
- 872 Блокирование и атомарность
- 873 Вложенное блокирование
- 873 Взаимоблокировки
- 875 Производительность
- 875 Mutex
- 876 Блокирование и безопасность к потокам
- 877 Безопасность к потокам и типы .NET Framework
- 879 Безопасность к потокам в серверах приложений
- 880 Неизменяемые объекты
- 881 Немонопольное блокирование
- 881 Семафор
- 883 Блокировки объектов чтения/записи
- 887 Сигнализирование с помощью дескрипторов ожидания событий
- 887 AutoResetEvent
- 890 ManualResetEvent
- 891 CountdownEvent
- 892 Создание межпроцессного объекта EventWaitHandle
- 892 Дескрипторы ожидания и продолжение
- 893 Преобразование дескрипторов ожидания в задачи
- 893 WaitAny, WaitAll и SignalAndWait
- 895 Класс Barrier
- 896 Ленивая инициализация
- 897 Lazy<T>
- 897 LazyInitializer
- 898 Локальное хранилище потока
- 899 [ThreadStatic]
- 899 ThreadLocal<T>
- 900 GetData и SetData
- 901 Interrupt и Abort
- 902 Suspend и Resume
- 903 Таймеры
- 903 Многопоточные таймеры
- 905 Однопоточные таймеры
- 907 Глава 23. Параллельное программирование
- 907 Для чего нужна инфраструктура PFX
- 908 Концепции PFX
- 908 Компоненты PFX
- 910 Когда необходимо использовать инфраструктуру PFX
- 910 PLINQ
- 912 Продвижение параллельного выполнения
- 913 PLINQ и упорядочивание
- 914 Ограничения PLINQ
- 914 Пример: параллельная программа проверки орфографии
- 916 Функциональная чистота
- 917 Установка степени параллелизма
- 917 Отмена
- 918 Оптимизация PLINQ
- 923 Класс Parallel
- 923 Parallel.Invoke
- 924 Parallel.For и Parallel.ForEach
- 929 Параллелизм задач
- 930 Создание и запуск задач
- 932 Ожидание на множестве задач
- 932 Отмена задач
- 933 Продолжение
- 937 Планировщики задач
- 938 TaskFactory
- 938 Работа с AggregateException
- 939 Flatten и Handle
- 941 Параллельные коллекции
- 942 IProducerConsumerCollection<T>
- 943 ConcurrentBag<T>
- 944 BlockingCollection<T>
- 944 Реализация очереди производителей/потребителей
- 907 Для чего нужна инфраструктура PFX
- 947 Глава 24. Домены приложений
- 947 Архитектура доменов приложений
- 948 Создание и уничтожение доменов приложений
- 950 Использование нескольких доменов приложений
- 952 Использование DoCallBack
- 953 Мониторинг доменов приложений
- 953 Домены и потоки
- 955 Разделение данных между доменами
- 955 Разделение данных через ячейки
- 955 Использование Remoting внутри процесса
- 957 Изолирование типов и сборок
- 961 Глава 25. Собственная способность к взаимодействию и COM
- 961 Обращение к собственным DLL-библиотекам
- 962 Маршализация типов
- 962 Маршализация общих типов
- 963 Маршализация классов и структур
- 964 Маршализация параметров in и out
- 965 Обратные вызовы из неуправляемого кода
- 965 Эмуляция объединения C
- 966 Разделяемая память
- 968 Отображение структуры на неуправляемую память
- 971 fixed и fixed {...}
- 972 Взаимодействие с COM
- 973 Назначение COM
- 973 Основы системы типов COM
- 974 Обращение к компоненту COM из C#
- 975 Необязательные параметры и именованные аргументы
- 976 Неявные параметры ref
- 976 Индексаторы
- 977 Динамическое связывание
- 978 Внедрение типов взаимодействия
- 978 Эквивалентность типов
- 978 Основные сборки взаимодействия
- 979 Открытие объектов C# для COM
- 981 Глава 26. Регулярные выражения
- 981 Основы регулярных выражений
- 983 Скомпилированные регулярные выражения
- 983 RegexOptions
- 984 Отмена символов
- 985 Наборы символов
- 986 Квантификаторы
- 986 Жадные и ленивые квантификаторы
- 987 Утверждения нулевой ширины
- 987 Просмотр вперед и просмотр назад
- 988 Привязки
- 989 Границы слов
- 990 Группы
- 990 Именованные группы
- 991 Замена и разделение текста
- 992 Делегат MatchEvaluator
- 992 Разделение текста
- 992 Рецептурный справочник по регулярным выражениям
- 992 Рецепты
- 995 Справочник по языку регулярных выражений
- 981 Основы регулярных выражений
- 1000 Предметный указатель
Инструкция как скачать книгу Джозеф Албахари, Бен Албахари: C# 5.0. Справочник. Полное описание языка в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рейтинг книги:
10 голосов
2236