C# 9 Development

C# 9 is the latest evolution of Microsoft's primary programming language. This course covers the latest language features in C# 9 (as well as C# 8), and includes a comparison of .NET Framework and .NET Core. You'll get a deep and broad understanding of C# as a programming language, and gain confidence to explore the richness of the .NET platform including asynchronous programming, LINQ, and EF.


5 days



  • At least 6 months programming experience
  • Familiarity with OO concepts would be an advantage

What you'll learn

  • Essential C# syntax
  • Implementing object-oriented designs in C#
  • Using generics, collection classes, and exceptions
  • Using LINQ and EF
  • Introduction to asynchronous programming
  • Creating REST services using Web API
  • What's new in C# 8 and C# 9

Course details

Introduction to C# and .NET

  • .NET Framework building blocks
  • Hello world in C#
  • Using Visual Studio 2019
  • .NET Framework vs. .NET Core

Core C# Programming Constructs

  • Variables, operators, and statements
  • Reference types vs. value types
  • Conversions
  • Nullable types
  • Using the Console and String classes
  • Flow-of-control
  • Pattern matching
  • Using implicit types

More C# Programming Constructs

  • Defining methods
  • Input, output, and optional parameters
  • Local functions
  • Method overloading
  • Arrays
  • Structures

Defining and Using Classes

  • Defining classes
  • Defining constructors and finalizers
  • Defining properties
  • Creating and disposing objects
  • Defining constants and read-only fields
  • Static members
  • Partial classes/methods
  • Deconstruction
  • Managing NuGet packages

Inheritance and Polymorphism

  • Defining base classes and derived classes
  • Overriding methods
  • Abstract classes
  • Interfaces

Exception Handling

  • Defining Try/Catch/Finally blocks
  • Throwing exceptions
  • Throw expressions
  • Defining new exception classes
  • Defining Using blocks

Creating Collections of Objects

  • Overview of generics
  • Using List collections
  • Using Dictionary collections

Delegates, Events, and Lambdas

  • Overview
  • Defining simple delegates
  • Defining and handling events
  • Using lambda expressions
  • Expression-bodied members

Additional Language Features

  • Operator overloading
  • Extension methods
  • Initializer syntax for objects, lists, and dictionaries
  • Anonymous types
  • Tuples

Introduction to LINQ

  • The role of LINQ
  • Simple LINQ query expressions
  • Using LINQ with collections
  • LINQ query operators

Using the Entity Framework

  • EF classes and DbContext
  • Implementing relationships
  • Managing data
  • Additional techniques

Introduction to Asynchronous Programming

  • Understanding the async and await keywords
  • Implementing asynchronous code

Creating REST Services using Web API

  • Introduction to REST and Web API
  • Implementing Web API controllers
  • Content negotiation
  • Best practices

What’s New in C# 8 and C# 9

  • Nullable reference types
  • Improved pattern matching
  • Asynchronous streams
  • Record types
  • Target-typed new and conditional expressions
  • Additional new features