- 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.