The In-Depth Object-Oriented Programming in C# course is perfect for developers coming to C# without a strong object-oriented (OO) background. Perhaps you've dabbled in C# code or had moderate success writing procedural code in C#. Now you want to start programming C# "the right way". Then this class is for you.
Similar to our more light-weight Beginning Object-Oriented Programming in C# course, we start assuming you know the basics of C# (loops, variables, methods, etc) while providing a little more foundation C# knowledge than the beginning class.
We introduce you to consuming and designing classes in C#. We move on to some of the concepts that make C# special (properties, assemblies). While the beginning course finishes out the class by covering interfaces and generics, this one digs deeper to give you a very solid OO foundation in C#. You will learn how to combine attributes and reflection to build extensible applications. Finally, we discuss how to model reference-type semantics (a class concept in C#) with nullable value types.