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

Posted By: ELK1nG

What's New in C#7, C#8 and C#9
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz, 2 Ch
Genre: eLearning | Language: English + srt | Duration: 40 lectures (4h 33m) | Size: 666.6 MB

Learn about latest features of C#7, C#8 and C#9
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

Requirements
Knowledge of C# 6 and earlier

Description
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:

deterministic

publicsign

pathmap

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)

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

Who this course is for
Beginner and experienced .NET/C# developers