Visual C# gives you access to a rich set of built-in types based on the common type system as well as the .NET Framework class library. As with all object-oriented languages, in C# you leverage built-in types and class libraries to build new types for your applications. When exposing your new types for consumption by others, your types should conform to the Common Language Specification (CLS) to maximize their reuse by developers using other programming languages.
C# shares many of the features of other object-oriented languages, such as C++. C# includes support for virtual methods, abstract classes, and method overloading. C# offers additional features that promote more reusable and more robust classes, such as a superior model for overriding methods in derived classes and an improved exception handling model.
Chapter 3 introduces and discusses value types and references. We’ll examine the important differences between value types and references, including object lifetime, storage, and garbage collection. Chapter 3 also discusses properties and how they can make your classes more user-friendly