Write Clean C# Code
Buy now
Learn more
Classes, Interfaces And Inheritance
Introducing C# Classes
C# Class Fundamentals
C# Class Properties
C# Interfaces
C# Class Inheritance
Virtual And Abstract Methods
Sealed Classes
Multiple Class Inheritance
C# Interface Inheritance
C# Inheritance Best Practices
Demo: C# Inheritance
The Factory Pattern
Introducing The Factory Pattern
The Factory Pattern Classes
Demo: A Factory Pattern Example
Factory Pattern Summary
Exception Handling
Introducing C# Exception Handling
The Throw, Catch And Finally Statements
C# Exception Handling Strategies
C# Exception Bad Practices
C# Exception Best Practices
Delegates, Events And Lambdas
Introducing C# Delegates
Multicast Delegates
Generic Delegates
Introducing C# Events
Invoking And Handling Events
Introducing C# Lambda Expressions
Lambda Expression Rules
Lambda Capture
The Observer Pattern
Introducing The Observer Pattern
The Push And Pull Models
The Observer Pattern Classes
Demo: An Observer Pattern Example
Observer Pattern Summary
Unit Testing
Introducing Unit Testing In C#
Unit-Testing Class Methods
Writing Unit Tests
Unit Test Assertions
Unit Test Best Practices
Demo: Unit Test Walkthrough
Demo: Unit Test Demonstration
Mocking
Introducing Mocking In C#
C# Mocking Libraries
Mocking Options
Mocking Summary
Demo: Mocking In C#
Dependency Injection
Introducing Dependency Injection
The C# Worker Service Library
Worker Service Lifetimes
Dependency Injection Summary
Demo: Dependency Injection In C#
Threads
Introducing C# Threads
Race Conditions
Thread Locking
Deadlocks And Livelocks
Demo: The Dining Philosophers
Thread Synchronization
Demo: Exchanging Data Between Threads
Tasks
Introducing C# Tasks
Working With C# Tasks
Parent And Child Tasks
Task Continuations
Demo: Generate Pig Latin
Cancelling Tasks
Products
Course
Section
Threads
Threads
Write Clean C# Code
Buy now
Learn more
Classes, Interfaces And Inheritance
Introducing C# Classes
C# Class Fundamentals
C# Class Properties
C# Interfaces
C# Class Inheritance
Virtual And Abstract Methods
Sealed Classes
Multiple Class Inheritance
C# Interface Inheritance
C# Inheritance Best Practices
Demo: C# Inheritance
The Factory Pattern
Introducing The Factory Pattern
The Factory Pattern Classes
Demo: A Factory Pattern Example
Factory Pattern Summary
Exception Handling
Introducing C# Exception Handling
The Throw, Catch And Finally Statements
C# Exception Handling Strategies
C# Exception Bad Practices
C# Exception Best Practices
Delegates, Events And Lambdas
Introducing C# Delegates
Multicast Delegates
Generic Delegates
Introducing C# Events
Invoking And Handling Events
Introducing C# Lambda Expressions
Lambda Expression Rules
Lambda Capture
The Observer Pattern
Introducing The Observer Pattern
The Push And Pull Models
The Observer Pattern Classes
Demo: An Observer Pattern Example
Observer Pattern Summary
Unit Testing
Introducing Unit Testing In C#
Unit-Testing Class Methods
Writing Unit Tests
Unit Test Assertions
Unit Test Best Practices
Demo: Unit Test Walkthrough
Demo: Unit Test Demonstration
Mocking
Introducing Mocking In C#
C# Mocking Libraries
Mocking Options
Mocking Summary
Demo: Mocking In C#
Dependency Injection
Introducing Dependency Injection
The C# Worker Service Library
Worker Service Lifetimes
Dependency Injection Summary
Demo: Dependency Injection In C#
Threads
Introducing C# Threads
Race Conditions
Thread Locking
Deadlocks And Livelocks
Demo: The Dining Philosophers
Thread Synchronization
Demo: Exchanging Data Between Threads
Tasks
Introducing C# Tasks
Working With C# Tasks
Parent And Child Tasks
Task Continuations
Demo: Generate Pig Latin
Cancelling Tasks
7 Lessons
Introducing C# Threads
Race Conditions
Thread Locking
Deadlocks And Livelocks
Demo: The Dining Philosophers
Thread Synchronization
Demo: Exchanging Data Between Threads