What's New in C#7, C#8, C#9 and C#10

Go to class
Write Review

What's New in C#7, C#8, C#9 and C#10 provided by Udemy is a comprehensive online course, which lasts for 4-5 hours worth of material. What's New in C#7, C#8, C#9 and C#10 is taught by Dmitri Nesteruk. Upon completion of the course, you can receive an e-certificate from Udemy. The course is taught in Englishand is Paid Course. Visit the course page at Udemy for detailed price information.

Overview
  • Learn about latest features of C#7, C#8, C#9 and C#10

    What you'll learn:

    • Understand and appreciate C#7, C#8 and C#9 language features
    • Learn how to use new language features in practice

    This short course covers the latest and greatest features of C#, covering versions 7, 7.1,7.2, 7.3, 8.0, 9.0 and 10.0 of the language that are being sim-shipped with corresponding VisualStudio 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 AsyncReturn 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

    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:

      • deterministic

      • publicsign

      • pathmap

    C#8:

    • Nullable Reference Types

    • Indices andRanges

    • DefaultInterface Members

    • PatternMatching

    C# 9:

    • Record Types

    • Top-LevelCalls

    • Initial Setters

    • Pattern Matching Improvements (type patterns, parenthesized patterns, conjunctive and, disjunctive or, negated not, relational patterns)

    • Performance andInterop (Native sized integers (nint/nuint), function pointers, SkipLocalsInit)

    • Fit andFinish (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)

    C# 10:

    • Record Structs

    • Global Using Directives

    • File-Scoped Namespace Declarations

    • Extended PropertyPatterns

    • GenericAttributes

    • Lambda Improvements (attributes, explicit return types, natural type inference)

    • Enhanced #line directives

    Prerequisites

    • 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