4.2.1 Class types
A class type defines a data structure that contains data members (constants and fields), function members (methods, properties, events, indexers, operators, instance constructors, destructors and static constructors), and nested types. Class types support inheritance, a mechanism whereby derived classes can extend and specialize base classes. Instances of class types are created using object-creation-expressions (Section 18.104.22.168).
Class types are described in Section 10.
Certain predefined class types have special meaning in the C# language, as described in the following table.
| ||The ultimate base class of all other types (Section 4.2.2).|
| ||The string type of the C# language (Section 4.2.3).|
| ||The base class of all value types (Section 4.1.1).|
| ||The base class of all enum types (Section 14).|
| ||The base class of all array types (Section 12).|
| ||The base class of all delegate types (Section 15).|
| ||The base class of all exception types (Section 16).|