Wednesday, 20 January 2021

Implementing IEnumerable

The C# foreach loop works on any standard collection, but what do we need to do to make it work on collections we've written for ourselves?

Topics include:
  • C#
  • foreach
  • IEnumerable<T>
  • IEnumerator<T>
  • LINQ
  • Extension methods
Related videos:

Explicit Interface Implementation

 'Disambiguation' is a wonderful word - and it's an important concept in software too. Here's how C# explicit interface implementation can disambiguate otherwise indistinguishable methods.

Topics include:
  • C#
  • Interfaces
  • Explicit interface implementation

Random Changes

 

There are big differences between .NET Framework and .NET Core, but a number of small ones too. Here's a random example - which explains a lot about .NET Standard too.

Topics include:

  • .NET Core
  • .NET Standard
  • .NET Framework
  • Random numbers
  • Rock, Paper, Scissors
Related videos:

SOLID: The Dependency Inversion Principle

 

Dependency Inversion doesn't just mean reversing your existing dependencies. It's about making your entire system easier to extend and maintain.

Topics include:

  • C#
  • SOLID Code
  • The Dependency Inversion Principle
  • DIP
  • Dependency Injection
  • Interfaces
  • Rock, Paper, Scissors
Related videos:

SOLID: The Interface Segregation Principle

 

The Single Responsibility and Open-Closed Principles help us to keep our classes under control. But how do can we do the same for interfaces?

Topics include:

  • C#
  • SOLID Code
  • The Interface Segregation Principle
  • ISP
  • Interfaces
  • Task Parallel Library
  • Turtle graphics
Related videos:

SOLID: The Liskov Substitution Principle

 

Inheritance is one of the most fundamental features of Object-Oriented Programming. Why do we get it wrong so often?

Topics include:

  • C#
  • SOLID Code
  • The Liskov Substitution Principle
  • LSP
  • Inheritance
  • Substitutability
  • Abstract classes
  • Sealed classes
Related videos:

Wednesday, 13 January 2021

SOLID: The Open-Closed Principle

 

Making classes open to extension but closed to modification can improve productivity and reduce bugs. Here's how it's done.

Topics include:

  • C#
  • SOLID Code
  • The Open-Closed Principle
  • OCP
  • Strategy Pattern
  • Rock, Paper, Scissors
  • Interfaces

The State Pattern

  How many developers does it take to change a lightbulb? With the State pattern, not very many. Topics include: The State Pattern Design Pa...