At the heart of managed code lies the concept of types. Defining the concept of a type is not an easy task; but put simply, it offers a means for the runtime to know what precisely a certain object is, and hence what the valid operations are to be performed on it. Typing is a crucial concept in the world of managed code because of the type-safety guarantees the platform offers.
Types are blueprints for objects. They describe the shape of objects that are said to have that particular type. Such a shape has two key elements:
Data is what an object contains and operates on. It directly relates to the layout of objects in memory because ...