Microsoft hints at potential C# 7 features

Microsoft posts lists of features under consideration on GitHub, but warns they aren't 'descriptions of the final outcome'


Microsoft is moving forward with plans for version 7 of its C# language, posting lists of potential features, including tuples, pattern matching, nullability tracking, and syntax for lists.

The lists posted on GitHub this week characterize features by Strong Interest, Some Interest, and Small but Useful, right on down to Probably Never and Unbucketed. In a memo accompanying the GitHub post, Microsoft's Mads Torgerson urged developers not to get ahead of themselves. "Please don't infer anything about the final shape of C# 7 (or future versions). The list is a tracking mechanism for work, not a description of the outcome. We have a long way to go yet!"

Previously, Microsoft design plans for C# 7 have centered on data management, performance, and reliability. Making the Strong Interest list for C# 7 was tuples, for temporarily grouping a set of values; pattern matching; records/algebraic data types; nullability tracking; and async streams and disposal.

Moving down to Some Interest, there's covariant return types, more support for expression trees, syntax for lists and dictionaries, and immutable types and type providers, among other features. Additional generic constraints, interfaces that can only be implemented internally, default implementations in interfaces, array slicing syntax, and static interface members made the Interesting but require CLR (Common Language Runtime) Support list.

For the bottom lists, metaprogramming and hooks on object initializers are Probably Not This Time. And if you're interested in iSupportinitiatlize support during object initiatializer execution or destructibles, you'relikely out of luck, as these are on the Probably Never list.

"Each bucket is in no particular order. I'll try to think of a more systematic way of cross-referencing with proposals and notes, but wanted to get the list out there," Torgerson said. "I'll keep the list updated as we look at more feature ideas and change our minds about the relative importance."

The predecessor C# 6 release, due to ship with the Visual Studio 2015 software development platform planned for this summer, is set to feature less code clutter and the ability to write cleaner, more maintainable code.

Copyright © 2015 IDG Communications, Inc.