Полное руководство по языку программирования С# 6.0 и платформе .NET 4.6.
Глава 1. Введение в C#
Глава 2. Основы программирования на C#
Область видимости (контекст) переменных
Преобразования базовых типов данных
Операции языка C#
Массивы
Условные конструкции
Циклы
Программа сортировки массива
Методы
Параметры методов
Массив параметров и ключевое слово params
Рекурсивные функции
Перечисления enum
Структуры
Обработка исключений
Работа с консолью и класс Console
Типы значений и ссылочные типы
Глава 3. Классы. Объектно-ориентированное программирование
Классы и объекты
Модификаторы доступа
Константы и поля для чтения
Свойства и инкапсуляция
Перегрузка методов и операторов
Статические члены и модификатор static
Наследование
Полиморфизм и переопределение методов
Абстрактные классы
Класс System.Object и его методы
Преобразование типов
Обобщенные типы
Создание классов исключений и класс Exception
Анонимные типы
Методы расширения
Простанства имен, псевдонимы и статический импорт
Глава 4. Интерфейсы
Введение в интерфейсы
Клонирование объектов. Интерфейс ICloneable
Сортировка объектов. Интерфейс IComparable
Ковариантность и контравариантность обобщенных интерфейсов
Глава 5. Делегаты, события и лямбды
Делегаты
События
Анонимные методы
Лямбды
Ковариантность и контравариантность делегатов
Делегаты Action, Predicate и Func
Встроенные Методы (Expression–Bodied)
Глава 6. Null и типы Nullable
Значение null и Nullable-типы
Элвис-оператор
Глава 7. Объектно-ориентированное программирование. Практика
Создание проекта библиотеки классов
Создание классов. Часть 1
Создание классов. Часть 2
Создание главного проекта
Глава 8. Коллекции
Введение в коллекции
Необобщенные коллекции
ArrayList
Обобщенные коллекции
Список List<T>
Двухсвязный список LinkedList<T>
Очередь Queue<T>
Стек Stack<T>
Словарь Dictionary<T, V>
Класс ObservableCollection
Индексаторы и создание коллекций
Интерфейсы IEnumerable и IEnumerator
Итераторы и оператор yield
Глава 9. Работа с потоками и файловой системой
Работа с дисками
Работа с каталогами
Работа с файлами. Классы File и FileInfo
Чтение и запись файла. Класс FileStream
Чтение и запись текстовых файлов. StreamReader и StreamWriter
Работа с бинарными файлами. BinaryWriter и BinaryReader
Создание и чтение сжатых файлов. GZipStream и DeflateStream
Глава 10. Сериализация
Введение в сериализацию объектов
Бинарная сериализация. BinaryFormatter
Сериализация в формат SOAP. SoapFormatter
Сериализация в XML. XmlSerializer
Сериализация в JSON. DataContractJsonSerializer
Глава 11. Работа со строками
Строки и класс System.String
Операции со строками
Форматирование и интерполяция строк
Класс StringBuilder
Регулярные выражения
Глава 12. Сборка мусора, управление памятью и указатели
Сборщик мусора в C#
Финализируемые объекты
Указатели
Указатели на структуры, члены классов и массивы
Глава 13. Dynamic Language Runtime
DLR в C#. Ключевое слово dynamic
DynamicObject и ExpandoObject
Использование IronPython в .NET
Глава 14. Сборки .NET
Роль сборок в приложениях .NET
Разделяемые сборки. Добавление сборки в GAC
Глава 15. Многопоточность
Введение в многопоточность. Класс Thread
Создание потоков. Делегат ThreadStart
Потоки с параметрами и ParameterizedThreadStart
Синхронизация потоков
Мониторы
Класс AutoResetEvent
Мьютексы
Семафоры
Использование таймеров
Глава 16. Параллельное программирование и библиотека TPL
Задачи и класс Task
Работа с классом Task
Задачи продолжения
Класс Parallel
Отмена задач и параллельных операций. CancellationToken
Глава 17. Aсинхронное программирование. Task-based Asynchronous Pattern
Асинхронные делегаты
IAsyncResult и методы BeginInvoke/EndInvoke
Асинхронные методы, async и await
Последовательный и параллельный вызов асинхронных методов
Обработка ошибок в асинхронных методах
Отмена асинхронных операций
Глава 18. Рефлексия
Введение в рефлексию. Класс System.Type
Применение рефлексии и исследование типов
Динамическая загрузка сборок и позднее связывание
Атрибуты в .NET
Глава 19. LINQ
Основы LINQ
Фильтрация выборки и проекция
Сортировка
Работа с множествами
Агрегатные операции
Методы Skip и Take
Группировка
Соединение коллекций. Метод Join, GroupJoin и Zip
Методы All и Any
Отложенное и немедленное выполнение LINQ
Делегаты и анонимные методы в запросах LINQ
Глава 20. Работа с XML в C#
XML-Документы
Работа с XML с помощью классов System.Xml
Изменение XML-документа
XPath
Linq to Xml. Создание Xml-документа
Выборка элементов в LINQ to XML
Изменение XML-документа в LINQ to XML
Глава 21. Parallel LINQ
Введение в Parallel LINQ. Метод AsParallel
Метод AsOrdered
Обработка ошибок и отмена параллельных операции
Глава 22. Процессы и домены приложения
Процессы
Домены приложений
Оптимизация приложения с помощью доменов
Глава 23. Работа с датами и временем
Структура DateTime
Форматирование дат и времени
Глава 24. Дополнительные классы платформы .NET
Отложенная инициализация и тип Lazy
Математические вычисления и класс Math+
Работа с реестром. Класс Reqistry
Глава 25. Службы Windows
Создание службы
Установка службы
Глава 26. Валидация модели
Основы валидации модели
Атрибуты валидации
Создание своих атрибутов валидации
Самовалидация модели