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

  • Overview
  • Curriculum
  • Instructor
  • Review

About This Course

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

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 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)

C# 10:

  • Record Structs

  • Global Using Directives

  • File-Scoped Namespace Declarations

  • Extended Property Patterns

  • Generic Attributes

  • 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

  • Understand and appreciate C#7, C#8 and C#9 language features

  • Learn how to use new language features in practice

Instructor

Profile photo of Dmitri Nesteruk
Dmitri Nesteruk

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.

Review
4.9 course rating
4K ratings
ui-avatar of Rajav3
Rajav3
4.5
7 months ago

Good

  • Helpful
  • Not helpful
ui-avatar of Santhosh Ganderla
Santhosh G.
5.0
8 months ago

good

  • Helpful
  • Not helpful
ui-avatar of Arjun Singh
Arjun S.
5.0
8 months ago

Very good information.

  • Helpful
  • Not helpful
ui-avatar of Nannuru Raghavendra
Nannuru R.
5.0
9 months ago

Good Course

  • Helpful
  • Not helpful
ui-avatar of Mamtabajiraop
Mamtabajiraop
5.0
9 months ago

ok

  • Helpful
  • Not helpful
ui-avatar of Dieter Kunz
Dieter K.
4.0
9 months ago

Sehr interessant, gegen Ende wäre es schön wenn auch hier Beispiele gezeigt würden.

  • Helpful
  • Not helpful
ui-avatar of Arunkumarn4
Arunkumarn4
4.0
9 months ago

Understandable

  • Helpful
  • Not helpful
ui-avatar of Satheshg
Satheshg
5.0
10 months ago

good

  • Helpful
  • Not helpful
ui-avatar of Igor Borodin
Igor B.
3.5
11 months ago

Lack of examples in the last blocks

  • Helpful
  • Not helpful
ui-avatar of Mayakumari Sampath
Mayakumari S.
3.5
11 months ago

Good

  • Helpful
  • Not helpful
Leave A Reply

Your email address will not be published. Required fields are marked *

Ratings

Courses You May Like

Lorem ipsum dolor sit amet elit
Show More Courses