Jump to content

Locked What’s New in C#7, C#8 and C#9


Recommended Posts

This is the hidden content, please


This short course covers the latest and greatest features of C#, covering versions 7, 7.1, 7.2, 7.3, 8.0 and 9.0 of the language that are being sim-shipped with corresponding Visual Studio updates.

Course Topics

Here’s every language feature presented in this course, grouped by the version of the C# language.

C# 7:

    Out Variables
    Pattern Matching (is and switch expressions)
    Tuples and Tuple Deconstruction
    Local Functions
    Ref Returns and Locals
    Expression Bodied Members
    Throw Expressions
    Generalized Async Return Types
    Literal Improvements

C# 7.1:

    How to turn on C# 7.1 support
    Async Main
    Default Expressions
    Ref Assemblies
    Infer Tuple Names
    Pattern-Matching with Generics

C# 7.2:

    Leading Digit Separators
    ‘Private Protected’ Access Modifier
    Non-Trailing Named Arguments
    Reference Semantics on Value Types:
        ‘In’ Parameters
        ‘Ref Readonly’ Variables
        ‘Ref Struct’ and Span<T>

C# 7.3:

    Performance improvements
        Access fixed fields without pinning
        Reassign ref local variables
        Use initializers on stackalloc arrays
        Use fixed statements on any type that supports a pattern
    Enhancements to existing features
        Tuple == and != support
        Use expression variables in more locations
        Attach attributes to backing field of auto-properties
        Improved method resolution when arguments differ by ‘in’
        Improved overload resolution
    New compiler options:

C# 8:

    Nullable Reference Types
    Indices and Ranges
    Default Interface Members
    Pattern Matching

C# 9:

    Record Types
    Top-Level Calls
    Initial Setters
    Pattern Matching Improvements (type patterns, parenthesized patterns, conjunctive and, disjunctive or, negated not, relational patterns)
    Performance and Interop (Native sized integers (nint/nuint), function pointers, SkipLocalsInit)
    Fit and Finish (target-typed new, target type resolution of conditional expressions, static modifier for lambda expressions and anonymous methods, covariant return types, foreach GetEnumerator() use, discards as parameters to lambdas, attributes on local functions)
    C# Code Generators (partial method syntax, module initializers)


    Knowledge and understanding of C# 6 and earlier
    General experience in .NET/C# application development

Learning Outcomes

    An understanding and appreciation of latest C# 7/7.1/7.2/7.3/8/9 language features
    Understanding of how to convert existing C# code to C# 7/7.1/7.2/7.3/8/9

Who this course is for:

    Beginner and experienced .NET/C# developers


    Knowledge of C# 6 and earlier

This is the hidden content, please

This is the hidden content, please

Link to comment
Share on other sites

This topic is now closed to further replies.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.