C# contains two general categories of built-in data types: value types reference types. C#'s reference types are defined by classes.