{"id":7745,"date":"2016-08-30T10:00:07","date_gmt":"2016-08-30T17:00:07","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=7745"},"modified":"2019-02-14T15:27:46","modified_gmt":"2019-02-14T23:27:46","slug":"new-c-7-0-features-in-vs15-preview-4","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/new-c-7-0-features-in-vs15-preview-4\/","title":{"rendered":"New C# 7.0 features in Visual Studio &#8220;15&#8221; Preview 4"},"content":{"rendered":"<p>Over the past couple of previews, new C# language features have been trickling in, but <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-15-preview-4\/\">Preview 4<\/a> marks a point where the majority of C# 7.0 are now available.<\/p>\n<p>Here&#8217;s a code sample that uses a good number of these features, and that works in Preview 4 today:<\/p>\n<pre>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span style=\"color: #a71d5d\"><span style=\"font-size: 10pt\">class<\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #795da3\">Program<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"font-size: 10pt;color: #333333\">{<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">static<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">void<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><span lang=\"EN\"><span style=\"color: #795da3\">Main<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">(<\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">string[]<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\"> args)<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">{<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">object<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\">[] numbers =<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">{ 0b1, 0b10, <\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">new<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">object<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">[] { 0b100, 0b1000 },<span>\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ binary literals<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">0b1_0000, 0b10_0000 };<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ digit separators<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">var<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> (sum, count) = Tally(numbers);<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ deconstruction<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">WriteLine($<\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #183691\">\"Sum: {sum}, Count: {count}\"<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\">);<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">}<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">static<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> (<\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">int<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> sum, <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">int<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> count) <\/span><\/span><span lang=\"EN\"><span style=\"color: #795da3\">Tally<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">(<\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">object[]<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\"> values)<span>\u00a0\u00a0\u00a0\u00a0 <\/span>\/\/ tuple types<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">{<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">var<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> r = (s: <\/span><\/span><span lang=\"EN\"><span style=\"color: #0086b3\">0<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">, c: <\/span><\/span><span lang=\"EN\"><span style=\"color: #0086b3\">0<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">);<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ tuple literals<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">void<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> Add(<\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">int<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> s, <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">int<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> c) { r = (r.s + s, r.c + c); } <\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ local functions<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">foreach<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> (<\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">var<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> v <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">in<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\"> values)<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">{<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">switch<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> (v)<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ switch on any value<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">{<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">case<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">int<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> i:<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ type patterns<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">Add(i, <\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #0086b3\">1<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\">);<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">break<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\">;<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">case<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">object<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">[] a <\/span><\/span><span lang=\"EN\"><span style=\"color: #a71d5d\">when<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\"> a.Length &gt; <\/span><\/span><span lang=\"EN\"><span style=\"color: #0086b3\">0<\/span><\/span><span lang=\"EN\"><span style=\"color: #333333\">:<span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #969896\">\/\/ case conditions<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">var<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\"> t = Tally(a);<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">Add(t.sum, t.count);<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">break<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\">;<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">}<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">}<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span style=\"font-family: 'Consolas'\"><span lang=\"EN\"><span><span style=\"color: #333333\"><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><\/span><\/span><\/span><span style=\"font-size: 10pt\"><span lang=\"EN\"><span style=\"color: #a71d5d\">return<\/span><\/span><\/span><span lang=\"EN\"><span style=\"font-size: 10pt;color: #333333\"> r;<\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"color: #333333\"><span><span style=\"font-size: 10pt\">\u00a0\u00a0\u00a0 <\/span><\/span><span style=\"font-size: 10pt\">}<\/span><\/span><\/span><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><span lang=\"EN\"><span style=\"font-family: 'Consolas'\"><span style=\"font-size: 10pt;color: #333333\">}<\/span><\/span><\/span><span lang=\"EN\"><\/span><\/p>\r\n<p class=\"MsoNormal\" style=\"margin: 0in 0in 0pt;line-height: normal\"><\/p>\r\n<\/pre>\n<p>For a full write-up about tuples, deconstruction, pattern matching, local functions, and the rest of C# 7.0, head over to the <a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/whats-new-in-csharp-7-0\">.NET Blog<\/a>.<\/p>\n<p>Earlier versions of some of these features were shown at <a href=\"https:\/\/channel9.msdn.com\/Events\/Build\/2016\/B889\">Build 2016<\/a>.<\/p>\n<p>Happy hacking!<\/p>\n<table cellspacing=\"0\" cellpadding=\"2\" width=\"600\" border=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"150\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2016\/08\/Mads-Torgersen.png\" width=\"226\" height=\"226\" class=\"\" \/><\/td>\n<td valign=\"top\" width=\"450\"><strong>Mads Torgersen<\/strong>, C# Language Program Manager\n<a href=\"https:\/\/twitter.com\/madstorgersen\">@MadsTorgersen<\/a><\/p>\n<p>Mads leads the design of the C# language. During his 11 years at Microsoft he also contributed to Typescript, Roslyn, Visual Basic, and LINQ. Before that he was a professor at Aarhus University, doing research on programming languages and type systems.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Over the past couple of previews, new C# language features have been trickling in, but Preview 4 marks a point where the majority of C# 7.0 are now available. Here&#8217;s a code sample that uses a good number of these features, and that works in Preview 4 today: class Program { \u00a0\u00a0\u00a0 static void Main(string[] [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[237,1383,585,125,653],"class_list":["post-7745","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-net","tag-c","tag-r","tag-typescript","tag-visual-basic"],"acf":[],"blog_post_summary":"<p>Over the past couple of previews, new C# language features have been trickling in, but Preview 4 marks a point where the majority of C# 7.0 are now available. Here&#8217;s a code sample that uses a good number of these features, and that works in Preview 4 today: class Program { \u00a0\u00a0\u00a0 static void Main(string[] [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/7745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=7745"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/7745\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=7745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=7745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=7745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}