Core C#

Study Core C#

Language fundamentals, LINQ, async/await, records

Topics

Chapter 01 Survival Of The Sharpest

Foundational

Purpose of this chapter: set context for why modern C# looks the way it does, and which evolutionary themes matter in real codebases.

Chapter 02 Csharp 2 Generics

Mid-level

Purpose of this chapter: understand the C# 2 features that made “modern C#” possible: generics, Nullable, better delegate syntax (anonymous methods), and iterators (yield).

Chapter 03 Csharp 3 Linq

Mid-level

Purpose of this chapter: understand the collection of C# 3 language features that (together) enable LINQ to be expressive and practical: implicit typing, lambdas, extension methods, query syntax, etc.

Chapter 04 Csharp 4 Improving Interoperability

Mid-level

Purpose of this chapter: understand the C# 4 features that make interop and API consumption easier (dynamic, optional/named arguments), and learn generic variance (a key type-system concept used heavily by BCL interfaces).

Chapter 05 Writing Asynchronous Code

Mid-level

Purpose of this chapter: build a correct mental model for async/await so you can reason about control flow, exceptions, cancellation, context capture, and performance tradeoffs in production services.

Chapter 06 Async Implementation

Senior

Purpose of this chapter: understand what the compiler generates for async/await so you can reason about performance, debugging, and “weird” control-flow issues (especially around try/finally, contexts, and custom awaitables).

Chapter 07 Csharp 5 Bonus Features

Mid-level

Purpose of this chapter: cover the “extra” C# 5 features beyond async/await that show up in real code and interviews: foreach closure capture behavior and caller info attributes.

Chapter 08 Super Sleek Properties And Expression Bodied Members

Foundational

Purpose of this chapter: learn modern property improvements (read-only auto-props, initializers, struct behavior) and when expression-bodied members improve clarity vs when they harm readability.

Chapter 09 Stringy Features

Foundational

Purpose of this chapter: get fluent with modern “string-facing” features: interpolated strings (including formatting and culture) and nameof for refactor-safe identifiers.

Chapter 10 Smorgasbord Of Features For Concise Code

Foundational

Purpose of this chapter: learn several features that improve day-to-day readability by removing noise: using static, initializer enhancements, the null-conditional operator, and exception filters.

Chapter 11 Composition Using Tuples

Mid-level

Purpose of this chapter: become fluent with tuples as a lightweight composition tool, understand the difference between System.ValueTuple and System.Tuple, and know when not to use tuples (especially in public APIs).

Chapter 12 Deconstruction And Pattern Matching

Mid-level

Purpose of this chapter: get comfortable with deconstruction (tuples and custom Deconstruct) and pattern matching (type/constant/var patterns, is, and switch) so you can write clearer branching logic and explain compiler behavior in…

Chapter 13 Improving Efficiency With More Pass By Reference

Senior

Purpose of this chapter: understand modern by-ref features (ref locals/returns, in parameters, readonly structs, ref-like structs like Span) so you can reason about performance and correctness without introducing unsafe bugs.

Chapter 14 Concise Code In Csharp 7

Foundational

Purpose of this chapter: cover the “small but everywhere” features in C# 7.x that reduce boilerplate while keeping code explicit: local functions, out vars, numeric literal improvements, throw expressions, default literals, named…

Chapter 15 Csharp 8 And Beyond

Mid-level

Purpose of this chapter: understand the C# 8 feature set (and nearby future items) that meaningfully change how we write safe, expressive code: nullable reference types, switch expressions and richer patterns, ranges/indexes, and deeper…