The entry point for an application can have the async modifier.
BEFORE
static int Main(){ return DoAsyncWork().GetAwaiter().GetResult();}NOW
static async Task<int> Main(){ return await DoAsyncWork();}You can now omit the type on the right-hand side of the initialization
BEFORE
Func<string, bool> whereClause = default(Func<string, bool>);NOW
Func<string, bool> whereClause = default;The names of tuple elements can be inferred from the variables used to initialize the tuple
BEFORE
int count = 5;string label = "Colors used in the map";var pair = (count: count, label: label);NOW
int count = 5;string label = "Colors used in the map";var pair = (count, label);Element names are "count" and "label". Inferred by compiler.