C# 6.0. Справочник. Полное описание языка

C# 6.0. Справочник. Полное описание языка
thumb
thumb
thumb
sku: 12511200 25267001 40095600
825.00 грн.
Shipping from: Ukraine
   Description
[html]"Это одна из немногих книг, которую я держу на столе в качестве быстрого справочника."Скотт Гатри, Microsoft"Как новички, так и эксперты найдут здесь все новейшие приемы программирования на C#."Эрик Липперт, MicrosoftКнига "C# 6.0. Справочник. Полное описание языка", ставшая бестселлером, позволяет получить точные ответы практически на любые вопросы по C# 6.0, CLR и основным сборкам .NET Framework. После своего появления в 2000 году C# стал языком с выдающейся гибкостью и мощью, но его постоянный рост и совершенствование означают необходимость в дополнительном изучении.Организованное по концепциям и сценариям использования, существенно обновленное 6-е издание книги предлагает программистам средней и высокой квалификации лаконичный план получения знаний по языку C# и платформе .NET Framework. Читая ее, вы очень быстро поймете, почему это руководство считают авторитетным справочником по C#.- Изучите все аспекты языка C#, начиная с основ синтаксиса и переменных и заканчивая сложными темами, такими как указатели и перегрузка операций- Научитесь пользоваться языком LINQ благодаря трем посвященным ему главам- Освойте динамическое, асинхронное и параллельное программирование- Получите навыки работы со средствами .NET, в числе которых XML, взаимодействие с сетью, сериализация, рефлексия, безопасность, домены приложений и контракты кода- Исследуйте новый компилятор как службу C# 6.0 под названием RoslynОб авторах:Джозеф Албахари - автор книг C# 5.0 in a Nutshell (C# 5.0.Справочник. Полное описание языка, ИД "Вильямс", 2013 г.), C# 6.0 Pocket Reference (C# 6.0. Карманный справочник, ИД "Вильямс", 2016 г.) и LINQ Pocket Reference, а также создатель LINQPad, популярной утилиты для подготовки кода и проверки запросов LINQ.Бен Албахари - бывший руководитель проектов в Microsoft и соучредитель веб-сайта Auditionist, предназначенного для кастинга актеров в Соединенном Королевстве. Содержание книги "C# 6.0. Справочник. Полное описание языка" Об авторах 27Благодарности 28Предисловие 29Предполагаемая читательская аудитория 29Как организована эта книга 30Что требуется для работы с этой книгой 30Соглашения, используемые в этой книге 30Использование примеров кода 31От издательства 32Глава 1. Введение в С# и .NET Framework 33Объектная ориентация 33Безопасность в отношении типов 34Управление памятью 35Поддержка платформ 35Отношения между C# и CLR 35CLR и .NET Framework 35Язык C# и Windows Runtime 37Нововведения версии C# 6.0 38Нововведения версии C# 5.0 40Нововведения версии C# 4.0 40Нововведения версии C# 3.0 41Глава 2. Основы языка С# 43Первая программа на C# 43Компиляция 45Синтаксис 46Идентификаторы и ключевые слова 46Литералы, знаки пунктуации и операции 48Комментарии 48Основы типов 48Примеры предопределенных типов 49Примеры специальных типов 49Преобразования 52Типы значений и ссылочные типы 52Классификация предопределенных типов 56Числовые типы 56Числовые литералы 57Числовые преобразования 58Арифметические операции 59Операции инкремента и декремента 59Специальные целочисленные операции 608- и 16-битные целочисленные типы 61Специальные значения float и double 62Выбор между double и decimal 63Ошибки округления вещественных чисел 63Булевские типы и операции 64Булевские преобразования 64Операции сравнения и проверки равенства 64Условные операции 65Строки и символы 65Символьные преобразования 66Строковый тип 66Массивы 68Стандартная инициализация элементов 68Многомерные массивы 69Упрощенные выражения инициализации массивов 70Проверка границ 71Переменные и параметры 72Стек и куча 72Определенное присваивание 73Стандартные значения 74Параметры 74Объявление неявно типизированных локальных переменных с помощью var 79Выражения и операции 80Первичные выражения 80Пустые выражения 80Выражения присваивания 81Приоритеты и ассоциативность операций 81Таблица операций 82Операции для работы со значениями null 85Операция объединения с null 85null-условная операция (C# 6) 85Операторы 86Операторы объявления 86Операторы выражений 87Операторы выбора 88Операторы итераций 90Операторы перехода 92Смешанные операторы 93Пространства имен 94Директива using 95Директива using static (C# 6) 95Правила внутри пространств имен 96Назначение псевдонимов типам и пространствам имен 97Дополнительные возможности пространств имен 98Глава 3. Создание типов в С# 101Классы 101Поля 101Методы 102Конструкторы экземпляров 103Инициализаторы объектов 105Ссылка this 106Свойства 107Индексаторы 109Константы 110Статические конструкторы 111Статические классы 113Финализаторы 113Частичные типы и методы 113Операция nameof (C# 6) 114Наследование 115Полиморфизм 115Приведение и ссылочные преобразования 116Виртуальные функции-члены 118Абстрактные классы и абстрактные члены 119Сокрытие унаследованных членов 119Запечатывание функций и классов 120Ключевое слово base 121Конструкторы и наследование 121Перегрузка и распознавание 122Тип object 123Упаковка и распаковка 124Статическая проверка типов и проверка типов во время выполнения 125Метод GetType и операция typeof 125Метод ToString 126Список членов object 126Структуры 126Семантика конструирования структуры 127Модификаторы доступа 128Примеры 128Дружественные сборки 129Установление верхнего предела доступности 129Ограничения, накладываемые на модификаторы доступа 129Интерфейсы 130Расширение интерфейса 131Явная реализация членов интерфейса 131Реализация виртуальных членов интерфейса 132Повторная реализация члена интерфейса в подклассе 132Интерфейсы и упаковка 134Перечисления 135Преобразования перечислений 135Перечисления флагов 136Операции над перечислениями 137Проблемы безопасности типов 137Вложенные типы 138Обобщения 139Обобщенные типы 139Для чего предназначены обобщения 140Обобщенные методы 141Объявление параметров типа 142Операция typeof и несвязанные обобщенные типы 142Обобщенное значение default 143Ограничения обобщений 143Создание подклассов для обобщенных типов 144Самоссылающиеся объявления обобщений 145Статические данные 145Параметры типа и преобразования 145Ковариантность 146Контравариантность 149Сравнение обобщений C# и шаблонов C++ 150Глава 4. Дополнительные средства С# 151Делегаты 151Написание подключаемых методов с помощью делегатов 152Групповые делегаты 153Целевые методы экземпляра и целевые статические методы 154Обобщенные типы делегатов 155Делегаты Func и Action 155Сравнение делегатов и интерфейсов 156Совместимость делегатов 157События 159Стандартный шаблон событий 161Средства доступа к событию 164Модификаторы событий 165Лямбда-выражения 165Явное указание типов лямбда-параметров 166Захватывание внешних переменных 166Анонимные методы 169Операторы try и исключения 169Конструкция catch 171Блок finally 173Генерация исключений 174Основные свойства класса System.Exception 176Общие типы исключений 176Шаблон методов TryXXX 177Альтернативы исключениям 177Перечисление и итераторы 178Перечисление 178Инициализаторы коллекций 179Итераторы 179Семантика итератора 180Компоновка последовательностей 182Типы, допускающие значение null 182Структура Nullable 183Подъем операций 184Тип bool? и операции & и | 186Типы, допускающие null, и операции для работы со значениями null 186Сценарии использования типов, допускающих null 187Альтернативы типам, допускающим значение null 187Перегрузка операций 188Функции операций 188Перегрузка операций эквивалентности и сравнения 189Специальные неявные и явные преобразования 190Перегрузка операций true и false 190Расширяющие методы 191Цепочки расширяющих методов 192Неоднозначность и разрешение 192Анонимные типы 193Динамическое связывание 195Сравнение статического и динамического связывания 195Специальное связывание 196Языковое связывание 197Исключение RuntimeBinderException 197Представление типа dynamic во время выполнения 198Динамические преобразования 198Сравнение var и dynamic 199Динамические выражения 199Динамические вызовы без динамических получателей 200Статические типы в динамических выражениях 201Невызываемые функции 201Атрибуты 202Классы атрибутов 202Именованные и позиционные параметры атрибутов 203Цели атрибутов 203Указание нескольких атрибутов 203Атрибуты информации о вызывающем компоненте 204Небезопасный код и указатели 205Основы указателей 206Небезопасный код 206Оператор fixed 206Операция указателя на член 207Массивы 207void* 208Указатели на неуправляемый код 209Директивы препроцессора 209Условные атрибуты 209Директива #pragma warning 210XML-документация 211Стандартные XML-дескрипторы документации 212Дескрипторы, определяемые пользователем 213Перекрестные ссылки на типы или члены 214Глава 5. Обзор .NET Framework 215Среда CLR и ядро платформы 218Системные типы 218Обработка текста 218Коллекции 218Запросы 218XML 219Диагностика и контракты кода 219Параллелизм и асинхронность 219Потоки данных и ввод-вывод 219Работа с сетями 220Сериализация 220Сборки, рефлексия и атрибуты 220Динамическое программирование 221Безопасность 221Расширенная многопоточность 221Параллельное программирование 221Домены приложений 221Собственная возможность взаимодействия и возможностьвзаимодействия с COM 222Прикладные технологии 222Технологии пользовательских интерфейсов 222Технологии серверной части 225Технологии распределенных систем 226Глава 6. Основы .NET Framework 229Обработка строк и текста 229Тип char 229Тип string 231Сравнение строк 235Класс StringBuilder 237Кодировка текста и Unicode 238Дата и время 242Структура TimeSpan 242Структуры DateTime и DateTimeOffset 243Даты и часовые пояса 248DateTime и часовые пояса 249DateTimeOffset и часовые пояса 249TimeZone и TimeZoneInfo 250Летнее время и DateTime 253Форматирование и разбор 255ToString и Parse 255Поставщики форматов 256Стандартные форматные строки и флаги разбора 260Форматные строки для чисел 260Перечисление NumberStyles 263Форматные строки для даты/времени 265Перечисление DateTimeStyles 267Форматные строки для перечислений 267Другие механизмы преобразования 268Класс Convert 268Класс XmlConvert 270Преобразователи типов 270Класс BitConverter 271Глобализация 272Контрольный перечень глобализации 272Тестирование 272Работа с числами 273Преобразования 273Класс Math 273Структура BigInteger 274Структура Complex 275Класс Random 276Перечисления 277Преобразования для перечислений 277Перечисление значений enum 279Как работают перечисления 279Кортежи 280Сравнение кортежей 281Структура Guid 281Сравнение эквивалентности 282Эквивалентность значений и ссылочная эквивалентность 282Стандартные протоколы эквивалентности 283Эквивалентность и специальные типы 287Сравнение порядка 291Интерфейсы IComparable 292Операции < и > 293Реализация интерфейсов IComparable 293Служебные классы 294Класс Console 294Класс Environment 295Класс Process 296Класс AppContext 297Глава 7. Коллекции 299Перечисление 299IEnumerable и IEnumerator 300IEnumerable и IEnumerator 301Реализация интерфейсов перечисления 303Интерфейсы ICollection и IList 306ICollection и ICollection 307IList и IList 308IReadOnlyList 309Класс Array 310Конструирование и индексация 312Перечисление 314Длина и ранг 314Поиск 315Сортировка 316Обращение порядка элементов 317Копирование 317Преобразование и изменение размера 317Списки, очереди, стеки и наборы 318List и ArrayList 318LinkedList 321Queue и Queue 322Stack и Stack 323BitArray 324HashSet и SortedSet 324Словари 326IDictionary 327IDictionary 328Dictionary и Hashtable 328OrderedDictionary 330ListDictionary и HybridDictionary 330Отсортированные словари 331Настраиваемые коллекции и прокси 332Collection и CollectionBase 333KeyedCollection и DictionaryBase 335ReadOnlyCollection 337Подключение протоколов эквивалентности и порядка 338IEqualityComparer и EqualityComparer 339IComparer и Comparer 341StringComparer 342IStructuralEquatable и IStructuralComparable 343Глава 8. Запросы LINQ 345Начало работы 345Текучий синтаксис 347Выстраивание в цепочки операций запросов 347Составление лямбда-выражений 350Естественный порядок 352Другие операции 352Выражения запросов 353Переменные диапазона 355Сравнение синтаксиса запросов и синтаксиса SQL 356Сравнение синтаксиса запросов и текучего синтаксиса 356Запросы со смешанным синтаксисом 357Отложенное выполнение 357Повторная оценка 358Захваченные переменные 359Как работает отложенное выполнение 360Построение цепочки декораторов 361Каким образам выполняются запросы 362Подзапросы 363Подзапросы и отложенное выполнение 366Стратегии композиции 366Постепенное построение запросов 366Ключевое слово into 368Упаковка запросов 369Стратегии проекции 370Инициализаторы объектов 370Анонимные типы 370Ключевое слово let 371Интерпретируемые запросы 372Каким образом работают интерпретируемые запросы 374Комбинирование интерпретируемых и локальных запросов 376AsEnumerable 377LINQ to SQL и Entity Framework 378Сущностные классы LINQ to SQL 379Сущностные классы Entity Framework 380DataContext и ObjectContext 381Ассоциации 385Отложенное выполнение в L2S и EF 386DataLoadOptions 387Энергичная загрузка в Entity Framework 389Обновления 389Отличия между API-интерфейсами L2S и EF 391Построение выражений запросов 392Сравнение делегатов и деревьев выражений 392Деревья выражений 394Глава 9. Операции LINQ 397Обзор 398Последовательность→последовательность 399Последовательность→элемент или значение 400Ничего→последовательность 401Выполнение фильтрации 401Where 402Take и Skip 403TakeWhile и SkipWhile 404Distinct 404Выполнение проекции 404Select 405SelectMany 409Выполнение соединения 416Join и GroupJoin 416Операция Zip 424Упорядочение 424OrderBy, OrderByDescending, ThenBy и ThenByDescending 424Группирование 427GroupBy 427Операции над множествами 430Concat и Union 430Intersect и Except 431Методы преобразования 431OfType и Cast 431ToArray, ToList, ToDictionary и ToLookup 433AsEnumerable и AsQueryable 433Операции над элементами 434First, Last и Single 434ElementAt 435DefaultIfEmpty 435Методы агрегирования 436Count и LongCount 436Min и Max 436Sum и Average 437Aggregate 438Квантификаторы 440Contains и Any 440All и SequenceEqual 441Методы генерации 441Empty 441Range и Repeat 442Глава 10. LINQ to XML 443Обзор архитектуры 443Что собой представляет DOM-модель? 443DOM-модель LINQ to XML 444Обзор модели X-DOM 444Загрузка и разбор 446Сохранение и сериализация 447Создание экземпляра X-DOM 447Функциональное построение 448Указание содержимого 448Автоматическое глубокое копирование 449Навигация и запросы 450Навигация по дочерним узлам 450Навигация по родительским узлам 453Навигация по равноправным узлам 453Навигация по атрибутам 454Обновление модели X-DOM 454Обновление простых значений 455Обновление дочерних узлов и атрибутов 455Обновление через родительский элемент 456Работа со значениями 457Установка значений 457Получение значений 458Значения и узлы со смешанным содержимым 459Автоматическая конкатенация XText 459Документы и объявления 460XDocument 460Объявления XML 461Имена и пространства имен 463Пространства имен в XML 463Указание пространств имен в X-DOM 465Модель X-DOM и стандартные пространства имен 466Префиксы 467Аннотации 468Проецирование в дерево X-DOM 469Устранение пустых элементов 471Потоковая передача проекции 472Трансформирование X-DOM 472Глава 11. Другие технологии XML 475XmlReader 476Чтение узлов 477Чтение элементов 479Чтение атрибутов 482Пространства имен и префиксы 483XmlWriter 484Запись атрибутов 485Запись других типов узлов 485Пространства имен и префиксы 486Шаблоны для использования XmlReader/XmlWriter 486Работа с иерархическими данными 486Смешивание XmlReader/XmlWriter с моделью X-DOM 488XSD и проверка достоверности схемы 490Выполнение проверки достоверности схемы 491XSLT 493Глава 12. Освобождение и сборка мусора 495IDisposable, Dispose и Close 495Стандартная семантика освобождения 496Когда выполнять освобождение 497Подключаемое освобождение 499Очистка полей при освобождении 500Автоматическая сборка мусора 501Корневые объекты 502Сборка мусора и WinRT 503Финализаторы 503Вызов метода Dispose из финализатора 504Восстановление 505Как работает сборщик мусора? 507Технологии оптимизации 508Принудительный запуск сборки мусора 510Настройка сборки мусора 511Нагрузка на память 511Утечки управляемой памяти 512Таймеры 513Диагностика утечек памяти 514Слабые ссылки 515Слабые ссылки и кеширование 516Слабые ссылки и события 516Глава 13. Диагностика и контракты кода 519Условная компиляция 519Сравнение условной компиляции и статических переменных-флагов 520Атрибут Conditional 521Классы Debug и Trace 522Fail и Assert 523TraceListener 524Сброс и закрытие прослушивателей 525Обзор контрактов кода 526Зачем использовать контракты кода? 527Принципы, лежащие в основе контрактов 528Предусловия 530Contract.Requires 530Contract.Requires 532Contract.EndContractBlock 533Предусловия и переопределенные методы 534Постусловия 534Contract.Ensures 534Contract.EnsuresOnThrow 535Contract.Result и Contract.ValueAtReturn 535Contract.OldValue 536Постусловия и переопределенные методы 536Утверждения и инварианты объектов 536Утверждения 536Инварианты объектов 537Контракты на интерфейсах и абстрактных методах 538Обработка нарушения контракта 539Событие ContractFailed 540Исключения внутри условий контракта 541Избирательное применение контрактов 541Контракты в окончательных сборках 541Проверка на стороне вызывающего компонента 542Статическая проверка контрактов 542Атрибут ContractVerification 543Базовые уровни 544Атрибут SuppressMessage 544Интеграция с отладчиком 544Присоединение и останов 544Атрибуты отладчика 545Процессы и потоки процессов 545Исследование выполняющихся процессов 545Исследование потоков в процессе 546StackTrace и StackFrame 546Журналы событий Windows 548Запись в журнал событий 549Чтение журнала событий 549Мониторинг журнала событий 550Счетчики производительности 550Перечисление доступных счетчиков производительности 551Чтение данных счетчика производительности 552Создание счетчиков и запись данных о производительности 553Класс Stopwatch 555Глава 14. Параллелизм и асинхронность 557Введение 557Многопоточная обработка 558Создание потока 558Join и Sleep 560Блокировка 560Локальное или разделяемое состояние 562Блокировка и безопасность потоков 564Передача данных потоку 565Обработка исключений 566Потоки переднего плана или фоновые потоки 568Приоритет потока 569Передача сигналов 569Многопоточность в обогащенных клиентских приложениях 570Контексты синхронизации 571Пул потоков 572Задачи 574Запуск задачи 575Возвращение значений 576Исключения 577Продолжение 578TaskCompletionSource 580Task.Delay 582Принципы асинхронности 582Сравнение синхронных и асинхронных операций 582Что собой представляет асинхронное программирование? 583Асинхронное программирование и продолжение 584Важность языковой поддержки 585Асинхронные функции в C# 587Ожидание 587Написание асинхронных функций 593Асинхронные лямбда-выражения 597Асинхронные методы в WinRT 598Асинхронность и контексты синхронизации 599Оптимизация 600Асинхронные шаблоны 602Отмена 602Сообщение о ходе работ 604Асинхронный шаблон, основанный на задачах 606Комбинаторы задач 607Устаревшие шаблоны 610Модель асинхронного программирования 610Асинхронный шаблон на основе событий 611BackgroundWorker 612Глава 15. Потоки данных и ввод-вывод 613Потоковая архитектура 613Использование потоков 615Чтение и запись 617Поиск 618Закрытие и сбрасывание 618Тайм-ауты 618Безопасность в отношении потоков управления 619Потоки с опорными хранилищами 619FileStream 619MemoryStream 623PipeStream 623BufferedStream 627Адаптеры потоков 628Текстовые адаптеры 628Двоичные адаптеры 633Закрытие и освобождение адаптеров потоков 634Потоки со сжатием 635Сжатие в памяти 636Работа с zip-файлами 637Операции с файлами и каталогами 638Класс File 638Класс Directory 641FileInfo и DirectoryInfo 642Path 643Специальные папки 644Запрашивание информации о томе 646Перехват событий файловой системы 647Файловый ввод-вывод в Windows Runtime 648Работа с каталогами 648Работа с файлами 649Изолированное хранилище в приложениях Windows Store 650Размещенные в памяти файлы 650Размещенные в памяти файлы и произвольный файловый ввод-вывод 650Размещенные в памяти файлы и разделяемая память 651Работа с аксессорами представлений 652Изолированное хранилище 653Типы изоляции 653Чтение и запись в изолированное хранилище 655Местоположение хранилища 656Перечисление изолированного хранилища 657Глава 16. Взаимодействие с сетью 659Сетевая архитектура 659Адреса и порты 662Идентификаторы URI 663Классы клиентской стороны 665WebClient 666WebRequest и WebResponse 667HttpClient 669Прокси-серверы 673Аутентификация 674Обработка исключений 676Работа с протоколом HTTP 678Заголовки 678Строки запросов 678Выгрузка данных формы 679Cookie-наборы 680Аутентификация на основе форм 681SSL 683Реализация HTTP-сервера 683Использование FTP 686Использование DNS 688Отправка сообщений электронной почты с помощью SmtpClient 688Использование TCP 689Параллелизм и TCP 692Получение почты POP3 с помощью TCP 693TCP в Windows Runtime 695Глава 17. Сериализация 697Концепции сериализации 697Механизмы сериализации 697Форматеры 700Сравнение явной и неявной сериализации 700Сериализатор контрактов данных 701Сравнение DataContractSerializer и NetDataContractSerializer 701Использование сериализаторов 702Сериализация подклассов 704Объектные ссылки 706Переносимость версий 708Упорядочение членов 709Пустые значения и null 709Контракты данных и коллекции 710Элементы коллекции, являющиеся подклассами 711Настройка имен коллекции и элементов 711Расширение контрактов данных 712Ловушки сериализации и десериализации 713Возможность взаимодействия с помощью [Serializable] 714Возможность взаимодействия с помощью IXmlSerializable 716Двоичный сериализатор 716Начало работы 716Атрибуты двоичной сериализации 718[NonSerialized] 718[OnDeserializing] и [OnDeserialized] 718[OnSerializing] и [OnSerialized] 719[OptionalField] и поддержка версий 720Двоичная сериализация с помощью ISerializable 721Создание подклассов из сериализируемых классов 723Сериализация XML 724Начало работы с сериализацией на основе атрибутов 724Подклассы и дочерние объекты 726Сериализация коллекций 729IXmlSerializable 731Глава 18. Сборки 733Содержимое сборки 733Манифест сборки 734Манифест приложения 735Модули 736Класс Assembly 737Строгие имена и подписание сборок 738Назначение сборке строгого имени 739Отложенное подписание 739Имена сборок 741Полностью заданные имена 741Класс AssemblyName 742Информационная и файловая версии сборки 742Подпись Authenticode 743Подписание с помощью системы Authenticode 744Проверка достоверности подписей Authenticode 746Глобальный кеш сборок 747Установка сборок в GAC 748GAC и поддержка версий 748Ресурсы и подчиненные сборки 749Встраивание ресурсов напрямую 750Файлы .resources 751Файлы .resx 752Подчиненные сборки 754Культуры и подкультуры 756Распознавание и загрузка сборок 757Правила распознавания сборок и типов 758Событие AssemblyResolve 758Загрузка сборок 759Развертывание сборок за пределами базовой папки 762Упаковка однофайловой исполняемой сборки 763Избирательное исправление 765Работа со сборками, не имеющими ссылок на этапе компиляции 765Глава 19. Рефлексия и метаданные 767Рефлексия и активизация типов 768Получение экземпляра Type 768Имена типов 770Базовые типы и интерфейсы 771Создание экземпляров типов 772Обобщенные типы 773Рефлексия и вызов членов 774Типы членов 776Сравнение членов C# и членов CLR 778Члены обобщенных типов 779Динамический вызов члена 779Параметры методов 780Использование делегатов для повышения производительности 782Доступ к неоткрытым членам 782Обобщенные методы 784Анонимный вызов членов обобщенного интерфейса 784Рефлексия сборок 786Загрузка сборки в контекст, предназначенный только для рефлексии 787Модули 787Работа с атрибутами 787Основы атрибутов 788Атрибут AttributeUsage 789Определение собственного атрибута 790Извлечение атрибутов во время выполнения 791Извлечение атрибутов в контексте, предназначенном только для рефлексии 792Динамическая генерация кода 793Генерация кода IL с помощью класса DynamicMethod 793Стек оценки 795Передача аргументов динамическому методу 796Генерация локальных переменных 796Ветвление 797Создание объектов и вызов методов экземпляра 798Обработка исключений 799Выпуск сборок и типов 800Сохранение сгенерированных сборок 801Объектная модель Reflection.Emit 802Выпуск членов типа 803Выпуск методов 803Выпуск полей и свойств 805Выпуск конструкторов 807Присоединение атрибутов 808Выпуск обобщенных методов и типов 808Определение обобщенных методов 809Определение обобщенных типов 810Сложности, связанные с генерацией 810Несозданные закрытые обобщения 810Циклические зависимости 811Синтаксический разбор IL 813Написание дизассемблера 814Глава 20. Динамическое программирование 819Исполняющая среда динамического языка 819Унификация числовых типов 821Динамическое распознавание перегруженных членов 822Упрощение шаблона Посетитель 822Анонимный вызов членов обобщенного типа 826Реализация динамических объектов 828DynamicObject 828ExpandoObject 830Взаимодействие с динамическими языками 831Передача состояния между C# и сценарием 832Глава 21. Безопасность 833Разрешения 833CodeAccessPermission и PrincipalPermission 834PermissionSet 836Сравнение декларативной и императивной безопасности 836Безопасность доступа кода 837Применение безопасности доступа кода 839Проверка на полное доверие 840Разрешение вызывающих компонентов с частичным доверием 840Повышение привилегий 840APTCA и [SecurityTransparent] 841Модель прозрачности 842Работа модели прозрачности 843Как создавать библиотеки APTCA с применением прозрачности 846Прозрачность в сценариях с полным доверием 849Помещение в песочницу другой сборки 851Утверждение разрешений 852Подсистема безопасности операционной системы 854Выполнение от имени учетной записи стандартного пользователя 855Повышение полномочий до административных и виртуализация 856Безопасность на основе удостоверений и ролей 857Назначение пользователей и ролей 857Обзор криптографии 858Защита данных Windows 858Хеширование 860Симметричное шифрование 861Шифрование в памяти 863Соединение в цепочку потоков шифрования 864Освобождение объектов шифрования 865Управление ключами 866Шифрование с открытым ключом и подписание 866Класс RSA 867Цифровые подписи 868Глава 22. Расширенная многопоточность 871Обзор синхронизации 872Монопольное блокирование 872Оператор lock 873Monitor.Enter и Monitor.Exit 874Выбор объекта синхронизации 875Когда нужна блокировка 875Блокирование и атомарность 876Вложенное блокирование 877Взаимоблокировки 878Производительность 879Mutex 879Блокирование и безопасность к потокам 880Безопасность к потокам и типы .NET Framework 882Безопасность к потокам в серверах приложений 884Неизменяемые объекты 885Немонопольное блокирование 886Семафор 886Блокировки объектов чтения/записи 887Сигнализирование с помощью дескрипторов ожидания событий 892AutoResetEvent 892ManualResetEvent 895CountdownEvent 895Создание межпроцессного объекта EventWaitHandle 896Дескрипторы ожидания и продолжение 897Преобразование дескрипторов ожидания в задачи 897WaitAny, WaitAll и SignalAndWait 898Класс Barrier 899Ленивая инициализация 901Lazy 902LazyInitializer 902Локальное хранилище потока 903[ThreadStatic] 904ThreadLocal 904GetData и SetData 905Interrupt и Abort 905Suspend и Resume 906Таймеры 907Многопоточные таймеры 908Однопоточные таймеры 910Глава 23. Параллельное программирование 911Для чего нужна инфраструктура PFX 911Концепции PFX 912Компоненты PFX 912Когда необходимо использовать инфраструктуру PFX 914PLINQ 914Продвижение параллельного выполнения 917PLINQ и упорядочивание 917Ограничения PLINQ 918Пример: параллельная программа проверки орфографии 918Функциональная чистота 920Установка степени параллелизма 921Отмена 922Оптимизация PLINQ 922Класс Parallel 928Parallel.Invoke 928Parallel.For и Parallel.ForEach 929Параллелизм задач 934Создание и запуск задач 935Ожидание на множестве задач 936Отмена задач 937Продолжение 938Планировщики задач 942TaskFactory 942Работа с AggregateException 943Flatten и Handle 944Параллельные коллекции 945IProducerConsumerCollection 946ConcurrentBag 947BlockingCollection 948Реализация очереди производителей/потребителей 949Глава 24. Домены приложений 953Архитектура доменов приложений 953Создание и уничтожение доменов приложений 954Использование нескольких доменов приложений 956Использование DoCallBack 958Мониторинг доменов приложений 958Домены и потоки 959Разделение данных между доменами 960Разделение данных через ячейки 960Использование Remoting внутри процесса 961Изолирование типов и сборок 963Глава 25. Способность к взаимодействию 967Обращение к низкоуровневым DLL-библиотекам 967Маршализация типов 968Маршализация общих типов 968Маршализация классов и структур 969Маршализация параметров in и out 970Обратные вызовы из неуправляемого кода 971Эмуляция объединения C 971Разделяемая память 972Отображение структуры на неуправляемую память 975fixed и fixed {...} 977Взаимодействие с COM 979Назначение COM 979Основы системы типов COM 979Обращение к компоненту COM из C# 980Необязательные параметры и именованные аргументы 982Неявные параметры ref 982Индексаторы 982Динамическое связывание 983Внедрение типов взаимодействия 984Эквивалентность типов 984Основные сборки взаимодействия 985Открытие объектов C# для COM 985Глава 26. Регулярные выражения 987Основы регулярных выражений 987Скомпилированные регулярные выражения 989RegexOptions 989Отмена символов 989Наборы символов 991Квантификаторы 992Жадные и ленивые квантификаторы 992Утверждения нулевой ширины 993Просмотр вперед и просмотр назад 993Привязки 994Границы слов 995Группы 995Именованные группы 996Замена и разделение текста 997Делегат MatchEvaluator 997Разделение текста 998Рецептурный справочник по регулярным выражениям 998Рецепты 998Справочник по языку регулярных выражений 1001Глава 27. Компилятор Roslyn 1005Архитектура Roslyn 1006Рабочие области 1006Синтаксические деревья 1006Структура SyntaxTree 1007Получение синтаксического дерева 1010Обход и поиск в дереве 1011Трансформация синтаксического дерева 1018Объекты компиляции и семантические модели 1022Создание объекта компиляции 1022Выпуск сборки 1023Выдача запросов к семантической модели 1023Пример: переименование символа 1028Предметный указатель 1032[/html]
   Technical Details
categoryTitle: Научная и техническая литература
   Price history chart & currency exchange rate

Customers also viewed