Predefined types (also called built in types) are types specially supported by the C# compiler.
For example int is a predefined tpe. (Note there are other types such as DateTime which are defined in the System Namespace but are not predefined by the C# compiler)
Primitive types are types that are directly supported by the CLR. All the value types excluding decimal are primitive types. You can determine whether a type is primitive using type.isPrimitive