Objects and Types
So far, you’ve been introduced to some of the building blocks of the C# language, including variables, data types, and program flow statements, and you have seen a few very short complete programs containing little more than the Main() method. What you haven’t really seen yet is how to put all of these together to form a longer, complete program. The key to this lies in working with classes — the subject of this chapter. In particular, this chapter covers:
- The differences between classes and structs
- Class members
- Passing values by value and by reference
- Method overloading
- Constructors and static constructors
- Read-only fields
- Partial classes
- Static classes
- The Object class, from which all other types are derived
Note that we cover inheritance and features related to inheritance in Chapter 4, “Inheritance.”
This chapter introduces the basic syntax associated with classes. However, we assume that you are already familiar with the underlying principles of using classes — for example, that you know what a constructor or a property is. This chapter is largely confined to applying those principles in C# code.
In this chapter, we introduce and explain those concepts that are not necessarily supported by most object-oriented languages. For example, although object constructors are a widely used concept that you should be familiar with, static constructors are something new to C#, so this chapter explains how static constructors work.
Classes and Structs