Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...

Высший учебник C# 14 и .NET 10 LTS

Регулярные выражения

Введение Операторы повторения Группирующие скобки Экранировка спецсимволов Фигурные скобки Ограничение жадности Группы символов Наборы символов Инвертирование наборов Особенности кириллицы Спецсимволы внутри наборов Группы символов внутри наборов Спецсимволы-исключения в наборах Символ шляпки внутри наборов Особенности дефиса внутри наборов Начало и конец строки Граница слов Многострочность Команда или Незахватывающие группы Просмотр вперёд и назад Флаги в строке RegexOptions Поиск совпадения Позиция найденного Группы при поиске Группы в шаблоне Все группы списком Именованные группы Группы в строке замены Доллар в строке замены Список совпадений Группы во всех совпадениях Перебор совпадений Группы при переборе Именованные группы при переборе Полное совпадение Группы при полном совпадении Совпадение с начала строки Группы при совпадении с начала Замена совпадений Замена первого совпадения Разбиение строки

Обобщённые типы

Введение Обобщённый метод Вывод аргумента типа Явный аргумент типа Обобщённый класс Обобщённый интерфейс Несколько параметров типа Значение default(T) Ограничение базовым классом Ограничение интерфейсом Ограничение class Ограничение class? Ограничение struct Ограничение notnull Ограничение new() Ограничение unmanaged Несколько ограничений Ковариантность out Контравариантность in Вариативность делегатов

Перечисление и генераторы

Введение IEnumerable IEnumerator Связь с foreach Ручной перечислитель yield return yield break Ленивое выполнение Повторный перебор Материализация Собственная последовательность Метод-расширение последовательности

Стек, очередь и связанные коллекции

Введение Добавление в стек Снятие со стека Просмотр вершины стека Постановка в очередь Извлечение из очереди Просмотр начала очереди Узлы LinkedList Начало и конец списка Вставка в LinkedList Удаление из LinkedList Перебор LinkedList PriorityQueue Своё правило приоритета SortedSet SortedDictionary

Сравнение и правила равенства

Введение IComparable CompareTo Естественный порядок Comparison IComparer Отдельный comparer Comparer.Default IEquatable EqualityComparer Пользовательский equality StringComparison Согласование с GetHashCode

Неизменяемые и замороженные коллекции

Введение ImmutableArray ImmutableList Новая версия после изменения Builder ImmutableDictionary ImmutableHashSet FrozenDictionary FrozenSet Построение frozen Чтение и поиск Выбор типа коллекции

Кортежи, деконструкция, индексы и диапазоны

Введение Литерал кортежа Именованные элементы Возврат нескольких значений Сравнение кортежей Деконструкция Пропуск элемента Метод Deconstruct Тип Index Индекс с конца Тип Range Открытые границы Срез массива Срез строки

Расширенное сопоставление с образцом

Введение Switch-выражение Образец константы Сравнительный образец Логические and, or и not Образец свойства Вложенное свойство Позиционный образец Образец списка var и discard Охранное when Комбинирование образцов

Продвинутые возможности типов

Введение protected internal private protected Явная реализация интерфейса Реализация интерфейса по умолчанию Статический член интерфейса Статический абстрактный член Ковариантный результат override Primary constructor класса Primary constructor структуры record struct Неявное преобразование Явное преобразование Частичный метод Частичное свойство Автосвойство с field Extension block C# 14 Присваивание через ?.

Углублённый LINQ

Введение Отложенное выполнение Изменение источника до перебора Повторное выполнение Синтаксис запросов join GroupJoin Левое соединение ToLookup Zip Aggregate Cast OfType DefaultIfEmpty DistinctBy MinBy и MaxBy Chunk CountBy AggregateBy Index Пользовательский comparer

Построение и форматирование текста

Введение StringBuilder Append AppendLine Длина и ёмкость Вставка и удаление Очистка Получение строки Составное форматирование Ширина и выравнивание Форматы чисел Форматы даты CultureInfo IFormattable ISpanFormattable и TryFormat Разбор чисел NumberStyles ParseExact и TryParseExact

Числа и биты

Введение BigInteger Арифметика больших чисел НОД и степень Криптографический случайный выбор BitOperations Подсчёт единичных битов Ведущие и хвостовые нули Циклический сдвиг Порядок байтов BitConverter checked и unchecked

Продвинутая работа со временем

Введение DateOnly TimeOnly Сборка DateTime DateTimeOffset Unix-время Смещение TimeZoneInfo Перевод пояса Неоднозначное время Stopwatch Измерение участка

Продвинутая файловая система

Введение FileInfo DirectoryInfo Ленивый перебор Рекурсивный обход Атрибуты файла Время изменения Относительный путь Полный путь Временный файл FileSystemWatcher

Условная компиляция и директивы

Введение define undef if и elif DEBUG и TRACE Условный метод nullable warning error line region

Атрибуты

Введение Obsolete Свой атрибут Аргументы атрибута AttributeUsage Цель атрибута Наследование AllowMultiple Conditional Caller info Nullable-аннотации Члены и параметры

Рефлексия

Введение typeof GetType Объект Type Имя и namespace База и интерфейсы Свойства Методы Конструкторы Параметры BindingFlags GetValue и SetValue Invoke Activator Чтение атрибута Открытый generic Закрытый generic

Span, Memory и буферы

Введение Span над массивом Срез Span Индексатор Span ReadOnlySpan Строка и Span Memory Memory и Span stackalloc ref struct scoped ref readonly CopyTo и Fill Байты в Span ArrayPool Rent и Return

Потоки ввода-вывода

Введение Базовый поток Файловый поток Режим доступа Освобождение потока Чтение и запись байтов Позиция и длина Смещение в потоке Копирование потока Точное чтение Поток в памяти Текстовое чтение Текстовая запись Кодировка текста Двоичное чтение Двоичная запись Буферизация Ошибка ввода-вывода

JSON

Введение Объект в JSON JSON в объект Вложенный объект Список в JSON Имя свойства Пропуск свойства Обязательное свойство Значение по умолчанию Настройки сериализатора Регистр имён Record как DTO JsonDocument Объект без DTO Неверный JSON JSON в потоке JSON в файле

Асинхронность

Введение Задача и поток Task.Run async await Task с результатом Свойство Result Task.Delay Task.WhenAll Task.WhenAny Task.WhenEach Исключение в async CancellationToken CancellationTokenSource Проверка отмены CancelAfter Связанный токен Callback отмены ConfigureAwait ValueTask TaskCompletionSource Опасность async void IAsyncEnumerable await foreach Async iterator Отмена async iterator IAsyncDisposable await using

Многопоточность и обмен данными

Введение Класс Thread Запуск потока Join Идентификатор потока Фоновый поток ThreadPool Гонка данных lock System.Threading.Lock Monitor Ожидание условия Pulse PulseAll Interlocked CompareExchange Volatile SemaphoreSlim Reset events ReaderWriterLockSlim Parallel.For Parallel.ForEach Parallel.ForEachAsync ConcurrentDictionary ConcurrentQueue ConcurrentStack ConcurrentBag Unbounded channel Bounded channel ChannelWriter и Reader Завершение канала ReadAllAsync Producer-consumer

Сборки, проекты и пакеты

Введение Сборка и проект Файл csproj Target framework Ссылка на проект Зависимость сборок Публичный API NuGet-пакет Добавление пакета Удаление пакета Версия пакета Восстановление Локальный пакет Условная секция

База данных SQLite

Введение Пакет Microsoft.Data.Sqlite Строка подключения Открытие соединения Команда SQL Создание таблицы Вставка строки Выборка SELECT Чтение строки Параметры запроса Условие WHERE Одна строка Пустой результат Выбор столбцов Изменение UPDATE Удаление DELETE Сортировка ORDER BY Ограничение LIMIT Агрегаты Группировка GROUP BY NULL Транзакция Откат Ошибка SQL

Связи таблиц

Связывание таблиц Внешний ключ Один ко многим Получение данных из связанных таблиц Выборка связанных Запись без пары Цепочка связанных таблиц Связывание через таблицу связи Выборка через связь Удаление связанных данных

XML

Введение Элемент XElement Текст тега Атрибут Группа тегов Вложенный тег Атрибуты группы Группа с вложенностью Имя с дефисом Документ XDocument Сборка документа Поиск элемента Изменение Удаление Файл XML Неверный XML

HTTP-запросы

Введение HttpClient Запрос GET Тело ответа Код статуса Успешный ответ Параметры адреса Заголовки запроса Заголовки ответа Запрос POST JSON-тело POST Запрос PUT Запрос DELETE Переход по редиректу Таймаут Отмена Поток ответа Ошибка HTTP

Запросы к API

Введение Разбор тела Один ресурс Список Идентификатор в пути Query-параметры Отправка JSON Ключ доступа Пагинация Ошибочный ответ DTO ответа Класс клиента

TCP-сокеты

Введение TCP-клиент TCP-сервер Сетевой поток Обмен в одном запуске Несколько сообщений Границы сообщения Таймаут и отмена Несколько клиентов

UDP

Введение Датаграмма UdpClient Отправка пакета Прием пакета Ответ отправителю Обмен в одном запуске Несколько пакетов Таймаут и отмена UDP и TCP

WebSocket

Введение Подключение Отправка текста Получение сообщения Фрагменты Несколько сообщений Закрытие Отмена Ошибка соединения JSON-сообщение
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить