What does a type tell you? A lot of things:
- The storage space that a variable of the type requires.
- The maximum and minimum values that it can represent.
- The members (methods, fields, events, and so on) that it contains.
- The base type it inherits from.
- The location where the memory for variables will be allocated at run time.
- The kinds of operations that are permitted.
On top of all this, it greatly simplifies the program by letting the developers express the code in terms of the domain.