Jenis C# terbahagi kepada dua kategori asas: value types (menyimpan data secara terus) dan reference types (menyimpan rujukan/pointer kepada data pada heap). Kedua-duanya berbeza dari segi cara ia disimpan, disalin, dan dibandingkan — satu pembezaan penting yang mempengaruhi tingkah laku di seluruh bahasa ini.
Dua kategori
Value types → struct, int, double, bool, char, enum, DateTime, decimal
Stored INLINE (stack for locals); copied BY VALUE.
Reference types → class, string, array, object, interface, delegate
Variable holds a REFERENCE to data on the heap; copied BY REFERENCE.
