Intermediate Programming with C#
While you can create a C# program with just variables and control flow, C# is an object oriented language (OOP). This means you organize your code into objects which interact with each other. This course will provide the basics of OOP by introducing you to value types and reference types. By Brian Moakley.
Learning path
This is part of the Unity for Beginners learning path. View path.
Part 1: Working with Value Types
In Part 1 of this course, you'll learn about the basics of working with value type objects and how to create your own.
Let's talk structs: learn how to create a struct and why using them can assist in grouping data together.
In this challenge, you'll create an object that contains data which you'll print to the screen.
In this episode you'll be introduced to the concept of methods and how to define them on your objects.
Challenge time! In this episode, you will try writing your very own first method. Give it a shot!
Let's talk tuples: here you'll learn how to use tuples to return multiple values from a single method.
This episode introduces you to the concept of properties and how they can save you time while writing code.
Challenge time! Your task in this episode is to write your own custom property to set and get values.
Let's talk about constructors. In this episode, you will be introduced to constructors and find out how they are used.
Challenge time! In this challenge, you'll write your own constructor to set the values of a score object.
In this episode, you'll be introduced to namespaces and how they are useful to prevent namespace collisions.
Now that you have an understanding of value type objects, it's time to move on to Part 2, where you'll learn about reference objects.
Part 2: Working with Reference Types
Welcome to Part 2! Here, you'll learn about reference types and how they are managed differently in memory.
This episode shows how to create a reference type object by way of the class and shows the difference between value type objects.
Inheritance allows you to inherit code from other objects, which can be quite powerful for avoiding reuse.
Challenge time! Are you ready to create a family of objects? This challenge will get you started.
This episode introduces the concept of overloading - you'll learn how to create two methods with the same name.
Sometimes you need to override your parent method to provide your own. This episode shows you how.
Learn the difference between a normal class and abstract class, and the implications of being abstract.
This episode shows the difference between a class constructor versus a struct constructor, and what it means to have a constructor chain.
This episode introduces the static keyword and how it can be used to define class level variables.
Interfaces allow you to define behaviors that classes must implement. Watch this video to find out how!
This episode teaches you what it means to be polymorphic and how you can use it to make your code dynamic.
Course complete! You should now have a good grasp of objects and how to use them to improve your code.