- primary constructors -
public class Point(int x, int y) { } - read only auto-properties -
public int X { get; } = x; - static type using statements -
using System.Math; - property expressions -
public double Distance => Sqrt(X * X + Y * Y); - method expressions -
public Point Move(int dx, int dy) => new Point(X + dx, Y + dy); - params for enumerables -
public Point Average(params IEnumerable<Point> points) { } - monadic null checking -
if (points?.FirstOrDefault()?.X ?? -1) { } - constructor type parameter inference -
var t = new Tuple(1,2); // infers Tuple<T1, T2> - inline declarations for out params -
public void Foo(out var x, out var y) { }
(http://adamralph.com/2013/12/06/ndc-diary-day-3/?1)
Above is a list of features considered/planned for next version of C#. Interesting.