What does a type tell you? A lot of things:
  1. The storage space that a variable of the type requires.
  2. The maximum and minimum values that it can represent. 
  3. The members (methods, fields, events, and so on) that it contains.
  4. The base type it inherits from.
  5. The location where the memory for variables will be allocated at run time. 
  6. 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.