RECAPPING C# 6 AND A
FIRST LOOK INTO C# 7
PRATIK KHASNABIS
@SOFTVEDA
DDD MELBOURNE
2016
C# 1.0
VS 2002
C# 1.1
VS 2003
C# 2.0
VS 2005
Generics
Anonymous
Methods
Partial Class
Nullable
Types
Iterator
(yield)
Static class
C# 3.0
VS 2008
Lambda
Expression
LINQ
Anonymous
Types
Implicit
Type (var)
Extension
Methods
C# 4.0
VS 2010
Dynamic
type
Named
Arguments
Optional
Parameters
Generic
co/contra
variance
Better COM
Interop
C# 5.0
VS 2012
Async &
Await
Caller
Information
Attributes
VS 2013
Bug Fixes
Performance
C# 6.0
VS 2015
Auto-
Property
Initializer
Index
Initializer
Expression
bodied
methods and
properties
Static
Imports
Nameof
Expression
Null
Conditional
Operator (?.)
Await in
catch / finally
String
Interpolation
Exception
Filter
C# 7.0
VS “15”
Preview 3
Pattern
Matching
Local
Functions
Tuple
type
Binary
Literals
Digit
Separator
Enhanced
Partial
Ref return
and Ref
local
QUESTIONS

Recapping C# 6.0 and A First Look Into C# 7.0

Editor's Notes

  • #4 C# 1, Visual Studio .NET 2002 First release C# 1.1, Visual Studio .NET 2003 #line pragma and xml doc comments
  • #5 C# 2, Visual Studio .NET 2005 Anonymous methods, generics, nullable types, iterators/yield, static classes, co/contra variance for delegates
  • #6 C# 3, Visual Studio .NET 2008 Object and collection initializers, lambda expressions, extension methods, anonymous types, automatic properties, Language Integrated Query (LINQ), anonymous types, local var type inference
  • #7 C# 4, Visual Studio .NET 2010 Dynamic, named arguments, optional parameters, generic co/contra variance
  • #8 C# 5, Visual Studio .NET 2012 Async / await, caller information attributes Visual Studio .NET 2013 Bug fixes, performance improvements, and technology previews of .NET Compiler Platform (“Roslyn”)
  • #9 C# 6, Visual Studio .NET 2012 Nameof, String Interpolation, Null-conditional Member Access and Indexing, Index Initializers, Collection Initializer and Add Extension Methods Improved overload resolution, Exception Filters, Await in Catch and Finally Blocks, Auto-property Initializers, Getter-only Auto-properites, Function Members with Expression Bodies, Using Static