CHAPTER 5 UNDERSTANDING ENCAPSULATION
Note Remember that every aspect of a partial class definition must be marked with the partial keyword!
After you compile the modified project, you should see no difference whatsoever. The whole idea of
a partial class is only realized during design time. After the application has been compiled, there is just a
single, unified class within the assembly. The only requirement when defining partial types is that the
type’s name (Employee in this case) is identical and defined within the same .NET namespace.
To be honest, you will most likely not need to make use of partial class definitions too often.
However, Visual Studio uses them in the background all the time. Later in this book, when you start to
look into GUI application development using Windows Presentation Foundation or ASP.NET, you’ll see
that Visual Studio isolates designer-generated code into a partial class, leaving you to focus on your
application-specific programming logic.
Source Code The EmployeeAppPartial project can be found under the Chapter 5 subdirectory.
Summary
The point of this chapter was to introduce you to the role of the C# class type. As you have seen, classes
can take any number of constructors that enable the object user to establish the state of the object upon
creation. This chapter also illustrated several class design techniques (and related keywords). Recall that
the this keyword can be used to obtain access to the current object, the static keyword allows you to
define fields and members that are bound at the class (not object) level, and the const keyword (and
readonly modifier) allows you to define a point of data that can never change after the initial
assignment.
The bulk of this chapter dug into the details of the first pillar of OOP: encapsulation. Here you
learned about the access modifiers of C# and the role of type properties, object initialization syntax, and
partial classes. With this behind you, you are now able to turn to the next chapter where you will learn to
build a family of related classes using inheritance and polymorphism.
211