The .NET Framework comes with many different types defined
within it. A type is a class, structure, or other declaration; for instance,
int, short, string, DataTable, List<string> are types, with the last one
being a generic type. The following code creates an instance of a type:
Listing 1
The variable I is of type int, and is an instance of the int
type with the value zero. There are two kinds of types; value types and
reference types. Reference types are defined as a class. For instance, the
following is a reference type:
Listing 2
MyClass is a reference type, which means it's stored on the
heap, and that it can be explicitly set to null. Some of the reference types
defined in the framework are: string, DataTable, DataSet, List<T>, and so
on. On the other hand, value types are defined as structures, but the value
types int, short, etc. inherit from the base class ValueType. The following is
a value type:
Listing 3
public struct MyValueType
{
}
Structures have certain rules, like they need to have at
least one field defined within it, as well as a few other rules. Some of the
common value types are: DateTime, Rectangle, int, short, long, and many more.
There are many articles on the web discussing the
differences between value and reference types. Please consult them for more
information.