Углублённый курс по C# и .NET
Здесь собраны темы для тех, кто освоил основы и хочет писать структурированный код: наследование и интерфейсы, обобщённые типы, делегаты и события, запросы LINQ, исключения, работа с потоками и async/await. Материалы показывают не только синтаксис, но и ситуации, где каждая возможность действительно нужна.
Начните с принципов ООП и интерфейсов, затем изучите коллекции и обобщения, после этого переходите к делегатам и LINQ. Асинхронность и многопоточность оставьте напоследок: они опираются на всё перечисленное выше и требуют аккуратности.
Pattern matching и switch в C# с примерамиPattern matching в C#: switch expression, оператор is, шаблоны типов, свойств, реляционные, логические and/or/not и шаблоны списков.
Обобщения (generics) в C#: полное руководствоОбобщения в C# на примерах: обобщённые классы и методы, ограничения where, ковариантность и контравариантность, частые ошибки и вопросы.
Лямбда-выражения в C# с примерамиЛямбда-выражения в C#: оператор =>, Func и Action, замыкания, использование в LINQ, статические лямбды и ошибки с примерами кода.
LINQ в C#: примеры запросов к коллекциямLINQ в C# на практике: Where, Select, OrderBy, GroupBy, Join, First и Single, Any и All, Sum и Count, отложенное выполнение и два синтаксиса.
Делегаты и события в C#: полное руководствоДелегаты и события в C# на примерах: delegate, Action, Func, Predicate, мультикаст, ключевое слово event, EventHandler, подписка и отписка.
Абстрактные классы в C# на примерахАбстрактные классы в C#: как объявлять abstract-методы и свойства, чем отличаются от интерфейсов, когда что выбирать, с примерами кода.
Указатели в C# простыми словамиКак работать с указателями в C#: включение unsafe-кода, объявление указателя, операции взятия адреса и разыменования, арифметика указателей. Простые примеры.
Интерфейсы в C#: как их реализовать на примерахКак реализовать интерфейс в классе C#: объявление, обязательные члены, явная реализация, несколько интерфейсов и методы по умолчанию. Практические примеры.
Структуры struct в C#: от простого к сложномуЧто такое структуры struct в C#: поля и методы, отличия от классов, когда их стоит использовать, структуры в коллекциях, примеры кода и подводные камни.
Агрегация в C#: примеры и аналогииЧто такое агрегация в C#: как один класс содержит ссылки на другие, чем она отличается от композиции, с наглядными примерами кода.
Табулирование функции одной переменной в C#Как написать класс для табулирования функции одной переменной в C#: делегаты, шаг и границы, вывод таблицы значений и расширение под разные функции.
Оператор goto в C# для начинающихКак работает оператор goto в C#: метки, переход внутри switch, выход из вложенных циклов, а также аргументы за и против его применения в коде.
Индексаторы в интерфейсах C#Как объявить и реализовать индексатор в интерфейсе C#: синтаксис, явная реализация, примеры кода и случаи, когда это удобно.