- Task-based Asynchronous Pattern
- Во что разворачивается await
- Возвращаемые типы в async
- ValueTask - что это и зачем
- Почему CancellationToken — структура, отдельная от CancellationTokenSource?
- Шаблон асинхронного кода в WinForms
- Асинхронная версия Main
- Сопоставление с образцом
- Throw-выражения
- Кортежи
- Локальные функции
- Ref Structs - типы-значения с семантикой ссылочных типов
- Использование новой CLR бок о бок со старой
- Переключение между версиями .NET Core SDK
- Как узнать, какие патчи для .NET установлены
- Unicode и его ловушки
- Рекомендации Microsoft по работе со строками в .NET
- Как работает using
- Как работает foreach
- Классы Debug и Trace
- Класс Debugger
- Классы DynamicObject и ExpandoObject
- Класс AsyncOperationManager
- Структура SpinWait
- BigInteger
- Класс BlockingCollection
- Класс Barrier
- Класс SynchronizationContext
- Класс System.Threading.Volatile
- System.Collections.Immutable
- Как правильно использовать регулярные выражения в .NET
- Интерфейс IProgress
- System.Threading.Timer
- DebuggerDisplayAttribute
- ExceptionDispatchInfo
- Managed Extensibility Framework
- Маленькие радости LinqPad
- Windows Communication Foundation
- Запуск AnyCPU-приложения в 32-битном режиме
- Как узнать, что сборка Mixed Mode
- Как пометить сборку «только .NET 4.5 и выше»
- Аутентификация с Active Directory
- Использование аннотаций JetBrains
- Docker
- Структура Span<T>
- Lightweight Function в стеке вызовов
- TCP сервер
- Как встроить TLB в сборку
- Инлайнинг методов в .NET
- CallerMemberNameAttribute
- Microsoft SQL Server Compact Edition
- Недокументированные ключевые слова C#
- Как различить версии .NET 4.x
- Используем procdump для получения дампов
- Использование T4 в своей программе
- MemoryMappedFiles