What’s New inC#6
Dmitri Nesteruk
@dnesteruk
skype: dmitri.nesteruk
Retrospective
C#1(Jan 2002)
C#2 Generics
C#3 LINQ
C#4 Dynamic
C#5 Async/await
C#6 Roslyn
Compiler as a Service
C#/VB.NET compiler re-written in managed code
Expose compiler interfaces
Open-source https://github.com/dotnet/roslyn
No bundled metaprogramming (build it yourself)
C#6 Features
Using static
Automatic property initializers
Expression bodied members
Nameof
Exception filters
Dictionary initializer
Minor Features
Await in catch/finally
Parameterless struct constructors
Add() as an extension method on collections
Overload improvements (e.g. w.r.t nullable)
Did Not Make It
Primary constructors
public struct Money(string currency, decimal amount)
{
public string Currency { get; } = currency;
public decimal Amount { get; } = amount;
}
Declaration expressions
return int.TryParse(input, out var result) ? result : 0;
That’s It!
Questions?
@dnesteruk

What's New in C# 6

  • 1.
    What’s New inC#6 DmitriNesteruk @dnesteruk skype: dmitri.nesteruk
  • 2.
    Retrospective C#1(Jan 2002) C#2 Generics C#3LINQ C#4 Dynamic C#5 Async/await C#6 Roslyn
  • 3.
    Compiler as aService C#/VB.NET compiler re-written in managed code Expose compiler interfaces Open-source https://github.com/dotnet/roslyn No bundled metaprogramming (build it yourself)
  • 4.
    C#6 Features Using static Automaticproperty initializers Expression bodied members Nameof Exception filters Dictionary initializer
  • 5.
    Minor Features Await incatch/finally Parameterless struct constructors Add() as an extension method on collections Overload improvements (e.g. w.r.t nullable)
  • 6.
    Did Not MakeIt Primary constructors public struct Money(string currency, decimal amount) { public string Currency { get; } = currency; public decimal Amount { get; } = amount; } Declaration expressions return int.TryParse(input, out var result) ? result : 0;
  • 7.