C# Version History

Version Features Visual Studio Framework
C# 7.2 Reference semantics with value types
Non-trailing named arguments
Leading underscores in numeric literals
private protected access modifier
Visual Studio 2017 version 15.5 .NET Core/ .NET Framework 4.7.1
C# 7.1 async Main method
default literal expressions
Inferred tuple element names
Visual Studio 2017 version 15.3 .NET Framework 4.7
C# 7.0 out variables
Tuples
Discards
Pattern Matching
ref locals and returns
Local Functions
More expression-bodied members
throw Expressions
Generalized async return types
Numeric literal syntax improvements
Visual Studio 2017 .NET Framework 4.7
C# 6.0 Read-only Auto-properties
Auto-Property Initializers
Expression-bodied function members
using static
Null – conditional operators
String Interpolation
Exception filters
nameof Expressions
await in catch and finally blocks
index initializers
Extension methods for collection initializers
Improved overload resolution
Visual Studio 2015 .NET Framework 4.6
C# 5.0 Async / await, and caller information attributes. Visual Studio 2012 .NET Framework 4.5
C# 4.0 Dynamic binding
Optional parameters and named arguments
Type variance with generic interfaces and delegates
Generic co- and contravariance
Embedded interop types
Visual Studio 2010 .NET Framework 4.0
C# 3.0 LINQ
Implicitly typed local variables
Object and collection initializers
Auto-Implemented properties
Anonymous types
Extension methods
Query expressions
Lambda expressions
Expression trees
Partial Methods
Visual Studio 2008 .NET Framework 3.0\3.5
C# 2.0 Generics
Partial types
Anonymous methods
Iterators
Nullable types
Private setters (properties)
Method group conversions (delegates)
Covariance and Contra-variance
Static classes
Visual Studio 2005 .NET Framework 2.0
C# 1.1 #line pragma and xml doc comments. Visual Studio 2003 .NET Framework 1.0/1.1
C# 1.0 First initial release Visual Studio 2002 .NET Framework 1.0/1.1

Leave a Reply

Your email address will not be published. Required fields are marked *