Skip to main content
00:00/00:00
Lecture 33 of 138

Extension methods

Download Course (Free)

Course Content

0 / 138 completed
Section 1: Course Curriculum138 videos

Part 1. C# in context

1m

An evolving language

11m

Balancing efficiency and complexity

10m

Ever more concise code

15m

An evolving platform

11m

Part 2. C# 2–5

7m

An evolving book

12m

Generics save the day

11m

Generics

17m

Type constraints

5m

What can be generic

11m

The default and typeof operators

15m

Nullable value types

8m

Language support Part 1

13m

CLR and framework support - The Nullable T struct

10m

Language support Part 2

13m

The importance of being lazy

15m

Iterators

13m

Simplified delegate creation

14m

Minor features

10m

Implementation sketch

15m

Fixed-size buffers

8m

Namespace aliases

10m

Automatically implemented properties

9m

Object and collection initializers

8m

Implicitly typed local variables (var)

11m

Collection initializers

8m

The compiler-generated type

12m

Anonymous types

10m

Lambda expressions

6m

Capturing variables

20m

Expression trees

9m

Extension methods

16mNow Playing

The end result - LINQ

7m

Query expressions

15m

Dynamic typing

6m

A brief look behind the scenes

11m

Introduction to dynamic typing

15m

Limitations and surprises in dynamic typing

13m

Usage suggestions

11m

Optional parameters and named arguments

11m

Impact on versioning

9m

Dynamic behavior beyond reflection

20m

COM interoperability improvements

15m

Generic variance

7m

Introducing asynchronous functions

12m

Restrictions on using variance

16m

First encounters of the asynchronous kind

14m

Thinking about asynchrony

12m

Async method declarations

12m

Synchronization contexts

8m

Wrapping of return values

5m

Await expressions

15m

The use of awaitable pattern members

15m

Asynchronous anonymous functions

5m

Asynchronous method flow

22m

Method completion

18m

Async main methods in C# 7.1

4m

Allow cancellation wherever possible

11m

Usage tips

15m

Custom task types in C# 7

18m

Structure of the generated code

18m

The MoveNext() method (high level)

8m

The stub method - Preparation and taking the first step

16m

A simple MoveNext() implementation

17m

Capturing variables in foreach loops

7m

How control flow affects MoveNext()

14m

Caller information attributes

12m

Execution contexts and flow

14m

Using caller information attributes with old versions of .NET

5m

Corner cases of caller information attributes

21m

Part 3. C# 6

2m

A brief history of properties

10m

Upgrades to automatically implemented properties

13m

Expression-bodied members

14m

Restrictions on expression-bodied members in C# 6

11m

A recap on string formatting in .NET

12m

Localization

12m

Introducing interpolated string literals

14m

Other uses for FormattableString

16m

Uses, guidelines, and limitations

12m

Localization using FormattableString

18m

Hard limitations of interpolated string literals

11m

Accessing identifiers with nameof

11m

Tricks and traps when using nameof

14m

Object and collection initializer enhancements

15m

Using static directives

17m

Using extension methods in collection initializers

17m

Indexers and the null conditional operator

8m

Exception filters

15m

Part 4. C# 7 and beyond

7m

The null conditional operator

12m

Introduction to tuples

7m

Retrying operations

14m

Tuple types and conversions

5m

Tuple literals and tuple types

10m

Tuples as bags of variables

12m

Conversions from tuple literals to tuple types

12m

Tuples in the CLR

16m

Regular equality and ordering comparisons

18m

Conversions between tuple types

18m

Alternatives to tuples

9m

Uses and recommendations

17m

Deconstruction of tuples

12m

Deconstruction assignments to existing variables and properties

14m

Deconstruction of nontuple types

12m

Introduction to pattern matching

7m

Patterns available in C# 7.0

13m

Using patterns with the is operator

6m

Using patterns with switch statements

13m

Evaluation order of pattern-based switch statements

9m

Thoughts on usage

12m

Recap - What do you know about ref

13m

Ref locals and ref returns

14m

Ref returns

15m

in parameters (C# 7.2)

14m

Overloading with in parameters

11m

Declaring structs as readonly (C# 7.2)

15m

Extension methods with ref or in parameters (C# 7.2)

9m

Ref-like structs (C# 7.2)

7m

Span T and stackalloc

17m

Local methods

12m

Local method implementations

15m

Usage guidelines

8m

Out variables

6m

Improvements to numeric literals

11m

Minor improvements in C# 7.3

12m

Nontrailing named arguments (C# 7.2)

8m

Nullable reference types

12m

Nullable reference types at compile time and execution time

14m

Future improvements

12m

Experiences of nullable reference type migration

13m

Switch expressions

10m

Recursive pattern matching

8m

Indexes and ranges

9m

More async integration

16m

Features not yet in preview

13m

Even more features in brief

11m