- Class are allocated in the heap and therefore subject to garbage collection.
- Struct are allocated on the stack and do not feed in the garbage collection.
- Struct inherits from System.Value, so it value type while while Class is a reference type.
- Class is reference type, if you create an object of the class variable only hold a reference to memory.
- Struct on the other hand is a value type, if you create a struct variable, holds the actual value not a reference to memory.
- Class is used when there is large amount of data, Class can be abstract.
- Struct is used when there is small amount of data, Struct can not be abstract.
- In Class you can create a default constructer while in Struct does not have permission to crate any default constructer.