Tietotyypit voidaan jakaa arvo- ja viittaustyyppeihin. Arvotyyppejä ovat numeeriset tyypit, bool, char, enum sekä struct. Viittaustyyppejä ovat string, object, class (luokat), interface (liittymät) ja delegate (delegaatit).
int luku1 = 123;
näyttäisi muistissa tältä
int luku1 = 123;
int luku2 = luku1;
ja muistissa näyttäisi tältä
int luku1 = 123;
int luku2 = luku1;
luku1 = 456;
Console.WriteLine(luku1); // 456
Console.WriteLine(luku2); // 123
Muistin tilanne
StringBuilder sb1 = new StringBuilder("Hello");
näyttää muistissa tältä
StringBuilder sb1 = new StringBuilder("Hello");
StringBuilder sb2 = sb1;
jolloin muistissa
StringBuilder sb1 = new StringBuilder("Hello");
StringBuilder sb2 = sb1;
sb1.Append(" World!");
Console.WriteLine(sb1.ToString()); // Hello World!
Console.WriteLine(sb2.ToString()); // Hello World!
kuten muistista huomataan