C# Versions & Features
C# is a modern, object-oriented programming language developed by Microsoft. Over the years, multiple versions have been released, each introducing new features to enhance productivity and performance. Below is a version-wise breakdown of major features introduced in each C# release.
C# 1.0 (January 2002)
- First release with basic OOP concepts
- Classes, structs, interfaces, and inheritance
- Value types and reference types
- Garbage Collection (GC)
C# 2.0 (November 2005)
- Generics for type-safe collections
- Partial classes to split a class definition across multiple files
- Nullable types (
int?
,double?
) - Iterator methods (
yield return
)
C# 3.0 (November 2007)
- LINQ (Language Integrated Query)
- Lambda expressions
- Automatic properties
- Anonymous types
- Extension methods
C# 4.0 (April 2010)
- Dynamic binding (
dynamic
keyword) - Named and optional parameters
- Covariance and contravariance
C# 5.0 (August 2012)
- Async and Await for asynchronous programming
- Caller information attributes (
CallerMemberName
,CallerFilePath
)
C# 6.0 (July 2015)
- Expression-bodied members
- Null-conditional operator (
?.
) - String interpolation (
$"{variable}"
) - Using static imports
C# 7.0 (March 2017)
- Tuples and deconstruction
- Pattern matching
- Local functions
- Out variable declaration
C# 7.1 (August 2017)
- Async Main method (
async Task Main
) - Default literal expressions (
default
) - Inferred tuple element names
- Pattern matching with generics
C# 7.2 (November 2017)
- Non-trailing named arguments
- Leading underscores in numeric literals
private protected
access modifierin
parameters for readonly reference
C# 7.3 (May 2018)
- Enhanced generic constraints
- Tuple comparison
- Stackalloc in nested expressions
- Ref local re-assignment
C# 8.0 (September 2019)
- Nullable reference types
- Async streams (
await foreach
) - Default interface methods
- Ranges and indices (
..
operator)
C# 9.0 (November 2020)
- Record types (
record
keyword) - Init-only properties (
init
) - Top-level statements
- Enhanced pattern matching
C# 10.0 (November 2021)
- File-scoped namespaces
- Extended
with
expressions - Constant interpolated strings
- Improved lambda expressions
C# 11.0 (November 2022)
- Raw string literals
- Required members (
required
keyword) - Generic attributes
- UTF-8 string literals
C# 12.0 (November 2023)
- Primary constructors for non-record types
- Collection expressions
- Alias directives (
using alias = namespace;
)
C# 13.0 (November 2024)
- Enhanced
params
Collections - New Lock Object
- New Escape Sequence (
\e
) - Method Group Natural Type Improvements
- Implicit Index Access in Object Initializers
- Support for
ref
Locals andunsafe
Contexts in Iterators and Async Methods ref struct
Types Implementing Interfaces- Allowing
ref struct
Types as Generic Type Arguments - Partial Properties and Indexers
- Overload Resolution Priority Attribute
C# 14.0 (November 2025)
- Upcoming Feature 1 (will be updated soon)
- Upcoming Feature 2 (will be updated soon)
- Upcoming Feature 3 (will be updated soon)
- Upcoming Feature 4 (will be updated soon)
Conclusion
Each C# version introduces features that improve efficiency, readability, and maintainability. Understanding these enhancements helps developers leverage the latest capabilities of the language.
References: