Skip to main content

🎓 Welcome to Advanced C#

Go beyond writing correct C# to writing fast, concurrent, and well-architected C#. This course dives into the type system, threading, the memory model, and the runtime itself.

📚 About This Course

You already write robust, modern C# — exceptions, generics, LINQ, records, async, and tests. This course takes you under the hood: how the language's advanced features really work, how to run work safely across many threads, how .NET manages memory, and how to structure code that scales.

The focus is on the language and runtime — skills that apply no matter which framework you build with. Expect precise mental models, real performance measurements, and concrete, runnable examples.

What You'll Learn

  • Generic variance (in/out) and advanced constraints
  • Extension methods, fluent APIs, and custom iterators with yield
  • Threads, tasks, the thread pool, and how to keep shared data safe
  • Data parallelism with Parallel and PLINQ
  • Cancellation, async streams (IAsyncEnumerable), channels, and async performance
  • The memory model: value vs reference types, stack vs heap, and boxing
  • High-performance, low-allocation code with Span<T> and benchmarking
  • Reflection, attributes, and dependency injection for flexible architecture
  • A capstone that combines performance, concurrency, and clean design

Who This Course Is For

  • Developers who finished Intermediate C# (or have equivalent experience)
  • Engineers who want to write high-performance, concurrent, production-grade C#
  • Anyone ready to understand why and how .NET behaves the way it does

📖 Course Modules

Module 1: Advanced Language Features

Push the type system and language further with variance, extension methods, and iterators.

Module 3: Advanced Asynchrony

Master cancellation, async streams, and the performance details of async.

Module 4: Performance and Memory

Understand how .NET uses memory and write high-performance, low-allocation code.

Module 5: Metaprogramming and Architecture

Inspect and extend code at runtime, and structure large applications.

✅ Prerequisites

This is an advanced course. You should be comfortable with everything in Intermediate C#:

  • Exceptions, generics, and the standard collections
  • Delegates, lambdas, events, and LINQ
  • Records, pattern matching, and nullable reference types
  • Files, JSON, async/await, HttpClient, and unit testing

If any of these are unfamiliar, work through Intermediate C# first — this course builds directly on it.

Required Software

  • The .NET SDK and a code editor (VS Code or Visual Studio)
  • For the benchmarking lesson: the BenchmarkDotNet NuGet package (we'll walk through adding it)

📚 Additional Resources

Official Documentation

Useful Links

Support

If you have questions or need help:

🔍 Search Course Content