Last Updated on January 22, 2024 by Aram
C# was born 23 years ago.
It was designed by Anders Hejlsberg from Microsoft in 2000.
There were some epic milestones that helped carve C# along the years and make it stand to be one of the most used technologies today.
Features including events, delegates, generics, LINQ, extension methods, anonymous types, asynchronous members, records, and many more.
Since C# 8, we have been getting yearly updates, which include new features, performance enhancements and security improvements.
Shipped with .NET 8, C# 12 is the latest upcoming major update that will be announced for Global Availability this week.
As a C# and .NET developer, you should equip yourself with the knowledge of the different features in C# and how to utilize them for an effective development.
And here are all the features listed down per C# version that would form the evolution of C#:
C# 1 – 2000 – OOP
Basic OOP features
Events
Delegates
Attributes
C# 2 – 2005 – Generics
Anonymous methods
Iterators
Nullable value types
covariance & contravariance
C# 3 – 2007 – LINQ & Lambdas
Auto-implemented properties
Extension methods
Expression trees
Object and Collection initializers
Anonymous types
C# 4 -2010 – Dynamic Binding
Named & optional arguments
Tuple class
Generic covariant and contravariant
Embedded interop types
C# 5 -2012 – The rise of asynchronous programming in C#
Asynchronous members with async/await
Caller info attributes
C# 6 -2015 – Clean Code
Static imports
Auto-property Init
Interpolated strings
Null-conditional ?. ?[]
nameof keyword
Expression-bodied members
Exception filter (when)
C# 7 -2017 – out variables
Pattern matching, Tuple type, Named tuple,
Tuple deconstruction
C# 8 -2019 – index/range
Readonly members
Default interface methods
Switch expressions
New pattern matching types: Property, Discard, Positional, Tuple.
Null-coalescing assignment operator ??=
C# 9 -2020 -Records
New Pattern Matching Types: Relational, Logical, parenthesized, negated null constant
Init only setters
Top-level statements
Target-typed new expressions
C# 10 -2021 -Record Structs
New Pattern Matching Type: Extended property pattern
Improved structure types
Improved Interpolated Strings
Global using directives
C# 11 -2022 -Raw String Literals
New Pattern Matching Type: List patterns
Required members
Generic attributes
Generic Math support
Auto-default structs
UTF-8 string literals
C# 12 -2023 -Primary Constructors
Collection Expressions
Optional params in lambdas
Semantic alias types
Ref readonly
Inline arrays
Experimental attribute
Below is an infographic that covers all the main features released with each major version of C# starting from version 1 until version 12
Summary
C# today is the result of an amazing and massive work over the past 2 decades.
As a C# and .NET developer, you always need to be aware of the upcoming features and other recent features, to stay at the verge of this amazing language and that will make you standout.
Don’t stay behind, always assign some time to learn new features so you can catch up with the rapid pace of C# and .NET releases.
This article helped introduce you to the evolution of C#, and how it became as it is today.
Collaborations
I am always open to discuss any protentional opportunities and collaborations.
Check this page to learn more about how we can benefit each other.
Sponsorships and Collaborations
Bonus
Enjoy this beautiful Opera masterpiece by the Italian Baroque music master:
Claudio Monteverdi
Il ritorno di Ulisse in Patria