c#

C#

The type system, LINQ, async and the .NET platform

16 topics 5 sections C# 14 / .NET 10 beginner → advanced
All beginner intermediate advanced
show All Unread Read

01 · Basics

4 topics

02 · Types and LINQ

11 topics
Attributes Understand how C# attributes store declarative metadata, how targets, arguments, inheritance, and reflection work, and what generated code gets wrong. intermediate 16 min Collections Choose C# collections by access pattern, equality, order, and concurrency, then avoid bugs involving mutable keys, read-only views, and compound operations. intermediate 15 min Delegates and events Delegates turn methods into type-safe values; events restrict who can publish notifications. Learn invocation lists, identity, capture, and async boundaries. intermediate 15 min Event subscription and lifetime Understand how C# events are declared, subscribed, raised, and released, including real traps around ordering, exceptions, and async handlers. intermediate 15 min Expression trees Represent lambdas as inspectable and translatable object trees; understand node types, parameter identity, visitors, compilation, and LINQ provider boundaries. advanced 17 min Generics Use type parameters to design reusable, type-safe C# APIs, with precise constraints, inference, variance, and runtime generic behavior. intermediate 16 min LINQ Compose type-safe queries with LINQ; understand deferred execution, materialization, operator contracts, ordering, and provider boundaries. intermediate 18 min Pattern matching Match runtime types and data shapes safely in C#, with explicit ordering, null handling, exhaustiveness, and list-pattern boundaries. intermediate 18 min Records Model data with C# record classes and record structs while keeping equality, copying, mutability, and inheritance behavior explicit. intermediate 17 min Reflection Inspect types and members at runtime, select overloads precisely, invoke code safely, and handle attributes, trimming, and Native AOT boundaries. advanced 17 min Span<T> and Memory<T> Use Span<T> and Memory<T> for contiguous memory views while keeping slicing, async boundaries, ownership, and stack allocation explicit. advanced 16 min

05 · Tooling

1 topic