Difference between Class and Struct in C#

Struct in C#:

In C#, struct is like a class that is used to store the data. However, unlike classes, a struct is a value type. We can easily use the struct keyword to define a struct.


struct Employee  {
  public int id;

Class in C#:

In C#, a class is a reference type that stores a reference to an object containing the data on the heap. It mainly used to combine the methods and fields into a sole unit.

Class vs Struct in C#:

1. In Class, data type is reference type and it stored on the heap.1. In Struct, data type is value type and it stored on the stack.
2. It supports inheritance2. It doesn't support inheritance.
3. Default values of a class type is null.3. Default values is the value produced by 'zeroing out' the fields of the struct.
4. It permits initialization of instance fields.4. It doesn't permit initialization of instance fields.
5. It supports destructor.5. It doesn't supports destructor.
6. It permit declaration of parameter-less constructors6. It doesn't permit declaration of parameter-less constructors
7. Assignment copies the reference.7. Assignment copies the values.