Wednesday, December 11, 2013

Things I learned at NDC London: The Future of C#

After the first 2 days of workshops, NDC London continued with lots of great speakers and sessions. I was planning to share some information during the conference itself but due to technical difficulties I had to postpone it. For the next few days I will be sharing some of the great content.
One of the sessions that got a lot of traction, was ‘The Future of C#’ session by Mads Torgersen.
Here is a list of some of the language features the C# team is considering:
  • Primary constructors - public class Point(int x, int y) { }
  • Read-only support for auto implemented properties - public int X { get; }=x;
  • Using statement support for static types - using System.Math; Sqrt(X);
  • Support for Property Expressions - public double Distance => Sqrt(X * X + Y * Y);
  • Improved null checking - if (points?.FirstOrDefault()?.X ?? -1) { }
  • Support for Method Expressions - public Point Move(int dx, int dy) => new Point(X + dx, Y + dy);
  • Inline declarations for out parameters - public void Foo(out var x, out var y) { }
  • Support for using enumerables in combination with the params keyword - public Point Average(params IEnumerable<Point> points) { }
I probably missed some features. So if you were there, feel free to share your info. I’ll add the items to the list…

Update: After creating this post, I noticed the following blog post that contains the same info+ some extra details: http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated

No comments: