Summer Sale Ends In:

C#200 Series

Intermediate C#: Object-Oriented Programming

Classes, objects, interfaces, inheritance, dependency injection, and unit testing introduce professional application design.

Hours

Intermediate

  Last Updated
June 2025

Write your awesome label here.

Join Skill Foundry

This course includes:

  • Access to private discord community
  • lessons, videos, code-alongs, exercises, solutions, projects, and more
  • Unlimited access to all courses, webinars, office hours and resources

----------------------------------------

Prerequisites:

This is an intermediate course. You need to have completed the following course or the equivalent:


What we'll cover...

  • Understand the core concepts of object-oriented programming: classes, methods, properties, and constructors
  • Write and run unit tests to improve software quality and catch bugs early
  • Create more readable and reliable code with enums, structs, and value/reference types
  • Use interfaces and dependency injection to follow modern design practices
  • Build class hierarchies using inheritance and apply polymorphism
  • Apply your knowledge to capstone challenges like Tic-Tac-Toe and Battleship. These are tough but rewarding projects that showcase your skills

Why Learn Object-Oriented Programming in C#?

Object-oriented programming (OOP) isn't just code, it's a mindset that transforms how you build software. With its clean syntax and powerful features, OOP lets you create scalable, maintainable applications that grow with your needs.

Whether you're developing enterprise applications, building games with Unity, or crafting web APIs, C# OOP gives you the structure and flexibility to succeed. The encapsulation, inheritance, and polymorphism principles aren't just theory. They're your toolkit for writing code that is flexible, extensible, and maintainable.

The best part? What you master today scales infinitely. C# OOP concepts transfer seamlessly across projects and industries, from financial software to gaming engines to cloud platforms, making it both a practical skill and a career accelerator.

Ready to transform your development approach with Object-Oriented Programming in C#?

This is where C# starts
to feel powerful.

Let's build real structure, not spaghetti.

Curriculum Outline

Introduction

  • Get started with the course and access the samples, exercises, and solutions.
  • Welcome!
  • Getting the Course Materials from Github

Classes

  • Learn the fundamentals of object-oriented programming with classes, methods, properties and constructors.
  • Types vs Classes vs Objects
  • Overview of Class Members
  • Classes, Fields, and Namespaces
  • Defining and Using Methods
  • Exercise: Area Calculator
  • Solution: Area Calculator
  • Quiz: Types, Classes, and Objects
  • How to Model Classes (for Beginners)
  • Defining and Using Properties
  • Exercise: Temperature Converter
  • Solution: Temperature Converter
  • Static Classes and Members
  • Exercise: About Me
  • Solution: About Me
  • Demo: Refactoring Airport Locker Rental
  • Exercise: The Guessing Game
  • Solution: The Guessing Game
  • Exercise: Rock, Paper, Scissors
  • Solution: Rock, Paper, Scissors
  • Constructor Methods
  • Exercise: Slope of a Line
  • Solution: Slope of a Line

Enums

  • Use enumeration types for better code readabilty and type safety.
  • The Enum Type
  • Refactoring Rock, Paper, Scissors
  • Exercise: Refactoring the Guessing Game
  • Solution: Refactoring the Guessing Game

Structs

  • Understand value types and how to work with struct data types.
  • Value Types vs Reference Types
  • The Struct Type
  • Exercise: Grid Calculations
  • Solution: Grid Calculations

Inheritance

  • Understand inheritance concepts, polymorphism, and build hierarchical class structures.
  • Introduction to Inheritance
  • Modeling the Video Game Inventory
  • Demo: Coding the Video Game Inventory
  • Exercise: Extending the Video Game Inventory
  • Solution: Extending the Video Game Inventory
  • Quiz: Inheritance

Unit Testing

  • Learn to write and run unit tests to ensure code quality and reliability.
  • Class Library Projects
  • NuGet Packages
  • Introduction to Unit Testing
  • Demo: Unit Testing Video Game Inventory
  • Exercise: Finish Unit Testing Video Game Inventory
  • Solution: Finish Unit Testing Video Game Inventory
  • Exercise: TDD with the String Calculator Kata
  • Exercise: Unit Testing Airport Locker Rental
  • Solution: Unit Testing Airport Locker Rental

Interfaces and Dependency Injection

  • Discover professional programming patterns with interfaces and dependency injection.
  • Introduction to Interfaces
  • Dependency Injection Basics
  • Demo: Dependency Injection & Rock, Paper, Scissors
  • Demo: Unit Testing Rock, Paper, Scissors with Mocks
  • Exercise: DI & The Guessing Game
  • Solution: DI & The Guessing Game
  • Factory Methods
  • Quiz: Interfaces & Dependency Injection

Capstone Projects

  • Apply everything you've learned with challenging capstone projects. (These are hard!)
  • Disclaimer
  • Tic-Tac-Toe
  • Solution: Tic-Tac-Toe
  • Battleship
  • Solution: Battleship
  • Next Steps

How We Build Developers

Write your awesome label here.

Written Lessons That Actually Make Sense
 

Our written content explains complex concepts in plain English, with real examples you can quickly apply. You'll understand not just what to do, but why pros make the decisions we do.

Write your awesome label here.

Hands-On Practice That Builds Confidence

Every concept comes with code samples and exercises. You can't learn to play guitar without putting your fingers on the strings and you can't learn to code without writing a lot of code!
Write your awesome label here.

Videos That Show, Don't Just Tell

You'll see how professional developers think, debug, and refactor code. These aren't just lectures, but applied theory. See concepts actually used together!
Write your awesome label here.

Rigorous Capstone Projects That Prove Your Skills

You'll build substantial applications that demonstrate your ability to architect solutions, handle complexity, and deliver professional-quality code.

Join developers who chose...

depth over speed,
understanding
over memorizationand 
professional skills over participation certificates.

Frequently asked questions

Who is this course for?

This course is for C# learners who know the basics (variables, loops, simple methods) and are ready to learn how to think like a developer. It’s your bridge from beginner code to professional structure and practices.

You need to have completed the following courses or the equivalent:

What makes this course different from most OOP tutorials?

We don’t just explain theory! You’ll apply it in real exercises and refactor working programs. You’ll learn by doing, not memorizing, and build things that feel like real software.

Will I build projects in this course?

Yes! Object-oriented programming is one of the hardest concepts for beginners to master, because it requires a fundamental change in how you think about and approach code problems. The only way to get good is to get your hands dirty! We use engaging game projects (video game inventory systems, rock paper scissors, tic tac toe, and Battleship) to teach real-world application structure while keeping you motivated through the learning process.

You’ll refactor the capstone from the beginner course, design, build, and unit test a video game inventory model, and take on serious challenges like building a working Battleship game.

Do I need to know testing or design patterns before taking this?

Nope! We introduce everything from scratch. The course includes class design, unit testing, dependency injection, and polymorphic design. You’ll learn what these concepts mean, how to use them effectively, and why they're required to create professional grade code that scales.

Is this course only for aspiring backend developers?

Not at all! These concepts are fundamental whether you’re aiming for backend, full stack, or just want to write cleaner, scalable code in C#.

In fact, mastering these concepts makes it much easier to learn other programming languages like Java, JavaScript, C++, Python, and PHP.

 Is this course part of the Skill Foundry membership?

Yes — full access is included in your membership. You’ll also unlock related content like the Collections & Databases course, ASP.NET Core, and career prep resources.

Will this course help me get a job?

It’s a big step toward that goal. Object-oriented programming, testable design, and clean architecture are core skills for junior developers. The better you understand them, the more confident (and hirable) you become.

How Hard is this Course?

We're not going to BS you. Learning OOP concepts is one of the hardest parts of learning to code because of the required change in your mindset and the way you approach problems. These are the concepts that separate beginners from professionals and are required to learn more advanced concepts.

But don't worry! Our supportive mentors and Discord community will keep you motivated and progressing.

About the Author

Eric Wise

Software Architect | Mentor | Entrepreneur
Eric isn't just another online instructor, he's a veteran software architect, multi-time tech entrepreneur, and someone who's been in every corner of the industry from tech start ups, big corporations, and freelancing.
But what makes Eric truly special is his legendary ability to explain complex concepts in ways that actually stick.

Forge your Future. Learn to Code.

You can’t fast forward time, but you can stop wasting it.

Join now and start making real progress.

Start today.

Most Popular

Monthly Plan

$75/month

  • Full access to all courses and learning paths
  • Learn at your own pace. No deadlines or pressure
  •  Regular content updates and new project releases
  • Access to our supportive Discord community
  • Help from the Skill Foundry team when you need it

Save 30%!

Annual Plan

$600/year

  • All monthly plan benefits
  • Access 24/7 to all courses and updates