Course curriculum

  • 01

    Introduction

    • Introduction

  • 02

    Records and immutability - part I

    • Rationale

    • Init only setters

    • Records - Syntax

    • Records - Immutability and equality

    • Records - Cloning with

    • Records - ToString

    • Homework

  • 03

    Records and immutability - part II

    • Records - Inheritance

    • versus F# records

    • Builder pattern

    • Less known facts

    • Homework

  • 04

    Top-level statements

    • Syntax and possibilities

    • Local variables, functions & types

    • Use cases

    • Homework

  • 05

    Pattern matching enhancements

    • Switch expression syntax

    • Type pattern

    • and/or/not and parenthesized ()

    • Relational patterns

    • Use cases

    • Homework

  • 06

    Target typing

    • Target-typed new expressions

    • Target-typed conditional expressions

    • Homework

  • 07

    Functions improvements

    • Static anonymous functions/lambda expressions

    • Attributes on local functions

    • Homework

  • 08

    Type system improvements

    • Covariant return types

    • Extension GetEnumerator support for foreach loops

    • Lambda discard parameters

    • Homework

  • 09

    Low-level improvements

    • Native sized integers

    • Function pointers

    • Suppress emitting localsinit flag

    • Homework

  • 10

    Code generators support

    • New features for partial methods

    • Module initializers

    • Homework