C# Version History

C# was first introduced with .NET Framework 1.0 in the year 2002 and evolved much since then. The following table lists important features introduced in each version of C#:

Version Important Features
C# 1.0
  • Basic features
C# 2.0
  • Generics
  • Partial types
  • Anonymous methods
  • Iterators
  • Nullable types
  • Private setters (properties)
  • Method group conversions (delegates)
  • Covariance and Contra-variance
  • Static classes
C# 3.0
  • Implicitly typed local variables
  • Object and collection initializers
  • Auto-Implemented properties
  • Anonymous types
  • Extension methods
  • Query expressions
  • Lambda expressions
  • Expression trees
  • Partial Methods
C# 4.0
  • Dynamic binding (late binding)
  • Named and optional arguments
  • Generic co- and contravariance
  • Embedded interop types
C# 5.0
  • Async features
  • Caller information
C# 6.0
  • Expression Bodied Methods
  • Auto-property initializer
  • nameof Expression
  • Primary constructor
  • Await in catch block
  • Exception Filter
  • String Interpolation
C# 7.0
  • out variables
  • Tuples
  • Discards
  • Pattern Matching
  • Local functions
  • Generalized async return types
  • more..
C# 8.0
  • Readonly members
  • Default interface methods
  • Using declarations
  • Static local functions
  • Disposable ref structs
  • Nullable reference types
  • more..
C# 9.0
  • Records
  • Init-only properties
  • Top-level statements
  • Init accessors and readonly fields
  • With-expressions
  • Value-based equality
  • more..
C# 10.0
  • Record structs
  • Global using directives
  • File-scoped namespace declaration
  • Extended Proptery Patterns
  • Null Parameter Checking
  • Constant interpolated strings
  • more..

Learn how to setup a development environment for C# in the next section.