<story><title>New Features in C# 7.0</title><url>https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/</url></story><parent_chain><item><author>nxc18</author><text>Wow! They seem to be adding lots of the things that make Python feel more convenient than C#, tuples being big.&lt;p&gt;Out parameters are going to make some things much nicer. I can certainly see local functions being useful as well.&lt;p&gt;Out of all of it, I think the thing I&amp;#x27;m most excited about is pattern matching. Having used F# for a short time, that was the biggest stand-out feature; it really does make some code much more concise and expressive.&lt;p&gt;I love C# but lately I&amp;#x27;ve been using Python for my quick-and-dirty work because in general I find it to be more expressive. It seems like C# 7 might make me reconsider.</text></item></parent_chain><comment><author>platz</author><text>&amp;gt; the thing I&amp;#x27;m most excited about is pattern matching. Having used F# for a short time, that was the biggest stand-out feature; it really does make some code much more concise and expressive.&lt;p&gt;I&amp;#x27;m all for C# getting more expressive, but what it calls &amp;quot;Pattern Matching&amp;quot; simply is not the same thing as real honest-to-goodness Pattern Matching.&lt;p&gt;C# &amp;quot;Pattern Matching&amp;quot; is little more than destructuring, or switch, on steroids.&lt;p&gt;Much like how the compiler assists you when writing subclasseses so that you&amp;#x27;ve implemented all the required methods, real Pattern Matching (F#) gives you the same guarantees from the compiler that you&amp;#x27;ve handled all the possible cases appropriately.&lt;p&gt;This makes real F# pattern matching much more useful than &amp;quot;switch with destructuring&amp;quot;, and helps you grow your programs in a safe way.&lt;p&gt;The C# way has all the same problems as the switch statement, which gives no feedback about what cases you&amp;#x27;ve handled.</text></comment>
<story><title>New Features in C# 7.0</title><url>https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/</url></story><parent_chain><item><author>nxc18</author><text>Wow! They seem to be adding lots of the things that make Python feel more convenient than C#, tuples being big.&lt;p&gt;Out parameters are going to make some things much nicer. I can certainly see local functions being useful as well.&lt;p&gt;Out of all of it, I think the thing I&amp;#x27;m most excited about is pattern matching. Having used F# for a short time, that was the biggest stand-out feature; it really does make some code much more concise and expressive.&lt;p&gt;I love C# but lately I&amp;#x27;ve been using Python for my quick-and-dirty work because in general I find it to be more expressive. It seems like C# 7 might make me reconsider.</text></item></parent_chain><comment><author>dep_b</author><text>One feature F# has that would be great is that you can declare primitives as a a type. So you won&amp;#x27;t mix up your kilometer floats with your miles floats. And kilometers divided by hours ends up being a km&amp;#x2F;h value.&lt;p&gt;The other one we&amp;#x27;ll never see: Non null references as a default, optionals as a special case.</text></comment>