Introduction
  • Brief Introduction to the Course
  • BONUS: Shortcuts and Quality Code Tips PDF
  • BONUS: Magic Destroyers Project - Guidelines PDF
The Building Blocks of a Class (Object)
  • Intro to Object Oriented Programming - OOP
  • Creating a Basic Object (Class) in C#
  • Fields and Properties - The Variables of a Class and The Difference Between Them
  • The Actions of a Class - Methods
  • Constructing a Class - What is The Purpose of Constructors?
  • Structuring The Files in Our Project - Namespaces
  • The Building Blocks of a Class - Source Code
Project Part 1
  • Project Part 1 - Introduction to the Project, Class and Class Members Creation
  • Project Part 1.1 - Creating Classes, Folders and Namespaces
  • Project Part 1.2 - Populating Classes
  • Project part 1 - Source Code
Properties
  • Hiding Fields with Properties
  • Read, Write and ReadWrite Properties
  • Logic to Validate Properties
  • Exceptions in Object Oriented Programming
  • Properties - Source Code
Project Part 2
  • Project Part 2 - Adding & Validating The Properties of our Classes
  • Project Part 2 - Enveloping Fields with Properties and Validation
  • Project Part 2 - Properties - Source Code
Constructors
  • The THIS Keyword, When and Why to Use It
  • It All Comes Together
  • Multiple Constructors in a Single Class
  • Reusing Constructors - Constructors Chaining
  • Generating Automated Constructors
  • Constructors - Source Code
Project Part 3
  • Project Part 3 - Final Constructors for our Classes
  • Project Part 3.1 - The "this."
  • Project Part 3.2 - Additional Constructors
  • Project part 3.3 - Constructors Chaining
  • Project Part 3 - Source Code
Access Modifiers
  • Public and Private Access Modifiers
  • Internal and Protected Access Modifiers
  • Access Modifiers - Source code
Static
  • Static Fields And Their Purpose
  • Constants in C# - Const and ReadOnly and The Difference Between Them
  • Static Methods
  • Static Class (Singleton Design Pattern) And What You Can Do With It
  • Enumerations - Limit The Input Options To Defend Your Code
  • Static - Source code
Project Part 4
  • Project Part 4 - Adding Static Classes and Members, and Enums Where Necessary
  • Project Part 4.1 - Constants
  • Project Part 4.2 - Enumerations
  • Project Part 4.3 - Static Classes
  • Project Part 4 - Source Code
Inheritance - 1 of 4 Pillars of Object Oriented Programming
  • Inheritance Introduction - Reuse Your Code, Don't Rewrite It!
  • Constructors in Inheriting Classes
  • Difference Between .base and .this Keywords
  • Virtual Methods and Properties - Same Method, Different Implementation
  • Is-A and Has-A Relationships
  • Inheritance - Source Code
Project Part 5
  • Project Part 5 - Inheritance, Eliminating Redundant Code
  • Project Part 5 - Inheritance
  • Project Part 5 - Inheritance - Source Code
Abstraction - 2 of 4 Pillars of Object Oriented Programming
  • Why and What is Abstraction
  • Interfaces - The Skeleton of a Class
  • A Little More on Interfaces - One Lecture is Not Enough!
  • Abstract Classes and Difference With Interfaces
  • Abstraction - Source Code
Project Part 6
  • Project Part 6 - Implementing Abstraction (Classes & Interfaces) in the project
  • Project Part 6 - Abstraction
  • Project Part 6 - Abstraction - Source Code
Encapsulation - 3 of 4 Pillars of Object Oriented Programming
  • What is the Point of Encapsulation?
Polymorphism - 4 of 4 Pillars of Object Oriented Programming
  • Introduction to Polymorphism
  • Different Classes in a Single Class Type Collection
  • Abstracting Collections to Generalize Methods
  • Final Quality Code Guidelines
  • Polymorphism - Source Code
Project Part 7
  • Project Part 7 - Implementing Polymorphism where applicable
  • Project Part 7 - Polymorphism
  • Project Part 7 - Polymorphism - Source Code
Finishing the Project
  • Project Part 8 - Characters Initialization
  • Project Part 9 - Mocking Up The Game Logic
  • Project Part 10 - To Couple or Not To Couple
  • Project Part 11 - Populating The Abilities
  • Project Part 12 - Finishing The Game Logic
  • Project Part 13 - The PlayersInfo Class Explained
  • Project Part 14 - Dedicated Constants File
  • Project Part 15 - Tools Static Class
  • Final Project Source Code