C# Reference Types and Values Types

C# uses two types to store variable data. One is Reference type and another is Value type.
Reference type can only store the reference to that or somewhere else in memory (called the heap) where content is stored. Where as, Value types store values and their content in memory.
Now, Question arise which are reference types and which are value types:
a). struct, enum are values types
b). classes, interface, delegates are reference types