Тип - это все, что может описать переменную.Для примера, у меня может быть переменная 'a' типа 'int' (int - это структура).У меня также может быть 'b' типа 'MyClass' (MyClass - это класс).
По сути, все типы используются (более или менее) таким образом (для объявления переменной):
TypeName variableName;
Вновь объявленная переменная автоматически имеет некоторую внутреннюю структуру, например, если она относится к типу класса, она может иметь методы и свойства.Если тип делегата, то он предназначен для хранения ссылки на метод.
По сути, тип - это все, что вы используете для объявления переменной.Тип придает переменной значение, а также ограничивает ее использование таким способом, который соответствует ее существованию.