In his book Pro C# 2008 and the .NET 3.5 Platform, Andrew Toelsen says, “In the world of .NET, type is simply a general term used to refer to a member from the set {class, interface, structure, enumeration, delegate}.
What do these all have in common that they would be classed together as types? What would be a formal definition of type that would cover all of these under one umbrella term like that???
A type is anything that can describe a variable. For insstance, I can have a variable ‘a’ of type ‘int’ (int is a struct). I can also have ‘b’ of type ‘MyClass’ (MyClass is a class).
Basically, all type are used (more or less) in this way (to declare a variable):
The newly declared variable automatically has some sort of internal structure, for example, if it is of a class type, it can have methods and properties. If is of a delegate type, then it is designed to hold a reference to a method.
Basically, a type is anything that you use to declare a variable. A type gives the variable its meaning, as well as restricts the variable to being used in a way which is suited to its existence.