Before C# 7.0 it was not possible to throw an exception directly in expression-bodied members. The workaround was to call a method that throws an exception.
Expression bodied members were a very popular feature of C# 6.0. Unfortunately, their usage was limited only to methods and properties.
There are situations when one needs a small helper method, but it’s not quite obvious where to put it. The method might not be generic enough to expose it as a new entity or even as a class member.
It’s time to sum up all C# 6 features. Here is a list of all goodness with short examples implemented and tested in Visual Studio 2015. nameof String interpolation Null-conditional (?. and ?) and null-coalescing (??) operators Index initializers Extension methods visible in collection initializers Exception filters Auto-property initializers Expression-bodied members Static using Extended async / await support I’ve also found few features that were planned to be included in C# 6 but finally where dropped. Parameterless constructors in structs – details in New Features in C# 6 article from November 2014 Primary constructions – details in The New and […]
Expression bodied functions were created to provide simplified syntax for cases where implementation is straightforward. They improve C# code readability significantly.