Skip to content

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 modifier
  • in 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 and unsafe 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: