Here are my first impressions on new language constructs in C# 6.0 and Visual Studio 14 enhanced editor features.
C# 6.0 language features
Primary constructorIs defined along with class definition: is equivalent to: What's interesting if I changed the operator from = to += in the event examples above, then the first example (with primary constructor) will not compile. I have no idea why this is disallowed.
Properties with initializersThis is a really great feature useful to have initial value set to an automatic property without having to create backing field. Interestingly, as shown above you can assign initial value even to a property with accessors implemented but there's no way you could use that value. I find this weird and a bit inconsistent with events. Because you can initialize event (which I understand as a kind of property) with an initial value, you can't do that when the event has accessors defined:
Declaration expressionAlthough minor this is the feature I like the most, it makes the parsing and getting from dictionary code much shorter.
Static importsAllow to apply using directive to static classes thus use methods and fields from these classes without providing class name. I imagine static imports can be useful in unit tests to create more readable assertions. I wonder also why these kinds of import is limited to static classes only forbidding static methods from non static classes and structs.
Null-propagation operatorFor many this is the most awaited feature. The operator simplifies checking against null and I like the idea of it. But I hope I will not have to use it often since aggressive checking for null everywhere makes the code ugly. I am passionate about ideas like boundaries for null and null object pattern. There are also some enhancements to exception handling like conditional catch block execution and awaitable calls in catch block.
Visual Studio 14 editor features
Renaming (Ctrl + R + R)
It's really fast and nimble. It works lot faster than ReSharper renaming I think. It could, however, be more sophisticated with renaming of related identifiers e.g. update object names when renaming classes or update backing field when renaming property.