CSharp

Intro

C# is a statically typed, multi-paradigm language designed for the .NET platform. It combines object-oriented fundamentals with functional programming features — pattern matching, LINQ, expression-bodied members, immutable records — and evolves with annual releases tied to .NET versions. For backend and enterprise development, C# is the primary language choice because of its type safety, mature tooling (Visual Studio, Rider, OmniSharp), and native integration with the .NET runtime.

What makes C# distinct in practice: the type system enforces correctness at compile time (nullable reference type analysis, generic constraints, pattern matching exhaustiveness), async/await is a first-class language feature wired directly into the runtime's task scheduler, and the language design committee publishes rationale for every feature on GitHub. This means you can trace why a feature works the way it does, which matters when debugging edge cases or choosing between overlapping features.

The notes in this folder cover two areas: language fundamentals (type system, generics, methods, error handling, reflection) and concurrency (async/await, tasks, synchronization, thread pool behavior). Fundamentals are prerequisite knowledge for everything else in .NET; concurrency is where most production bugs and performance issues live.

Questions


Whats next