Type Categories
The common type system supports two general categories of types:
- Value types
- Value types directly contain their data, and instances of value types are either allocated on the stack or allocated inline in a structure. Value types can be built-in (implemented by the runtime), user-defined, or enumerations.
- Reference types
- Reference types store a reference to the value's memory address, and are allocated on the heap. Reference types can be self-describing types, pointer types, or interface types. The type of a reference type can be determined from values of self-describing types. Self-describing types are further split into arrays and class types. The class types are user-defined classes, boxed value types, and delegates.
The following example written in Visual Basic .NET shows the difference between reference types and value types:
Imports System Class Class1 Public Value As Integer = 0 End Class 'Class1 Class Test Shared Sub Main Dim val1 As Integer = 0 Dim val2 As Integer = val1 val2 = 123 Dim ref1 As New Class1 Dim ref2 As Class1 = ref1 ref2.Value = 123 Console.WriteLine("Values: {0}, {1}", val1, val2) Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value) End Sub 'Main End Class 'TestThe output of the above example
Values: 0, 123 Refs: 123, 123Read more about this topic: Common Type System
Famous quotes containing the words type and/or categories:
“Music, in performance, is a type of sculpture. The air in the performance is sculpted into something.”
—Frank Zappa (19401994)
“all the categories which we employ to describe conscious mental acts, such as ideas, purposes, resolutions, and so on, can be applied to ... these latent states.”
—Sigmund Freud (18561939)