csharplang/Language-Version-History.md

6.4 KiB

Features Added in C# Language Versions

C# 1.0 (Visual Studio.NET)

  • Classes
  • Structs
  • Interfaces
  • Events
  • Properties
  • Delegates
  • Expressions
  • Statements
  • Attributes
  • Literals

C# 2 (VS 2005)

  • Generics
  • Partial types
  • Anonymous methods
  • Iterators
  • Nullable types
  • Getter/setter separate accessibility
  • Method group conversions (delegates)
  • Static classes
  • Delegate inference

C# 3 (VS 2008)

  • Implicitly typed local variables
  • Object and collection initializers
  • Auto-Implemented properties
  • Anonymous types
  • Extension methods
  • Query expressions
  • Lambda expression
  • Expression trees
  • Partial methods

C# 4 (VS 2010)

  • Dynamic binding
  • Named and optional arguments
  • Co- and Contra-variance for generic delegates and interfaces
  • Embedded interop types ("NoPIA")

C# 5 (VS 2012)

  • Asynchronous methods
  • Caller info attributes

C# 6 (VS 2015)

  • Draft Specification online
  • Compiler-as-a-service (Roslyn)
  • Import of static type members into namespace
  • Exception filters
  • Await in catch/finally blocks
  • Auto property initializers
  • Default values for getter-only properties
  • Expression-bodied members
  • Null propagator (null-conditional operator, succinct null checking)
  • String interpolation
  • nameof operator
  • Dictionary initializer

C# 7.0 (Visual Studio 2017)

C# 7.1 (Visual Studio 2017 version 15.3)

C# 7.2 (Visual Studio 2017 version 15.5)

C# 7.3 (Visual Studio 2017 version 15.7)