What are the difference between class and structure in C#?

What are the difference between class and structure in C#?

Structure

  • Struct are value types.
  • They can be empty but a null cannot be assigned to Struct
  • Structs cannot contain explicit parameterless constructors.
  • Doesn’t support Inheritance and cannot use the protected or protected internal modifier.
  • A Struct always has a built-in public default constructor.
  • Cannot use the “as” operator.
  • Cannot have a destructor
  • Cannot be abstract

Class

  • Classes are reference types.
  • Classes can be nothing – the reference can point to a null.
  • Classes can have explicit parameterless constructors
  • Supports Inheritance
  • Cannot inherit from another class but can implement interface
  • Can use all access modifiers
  • A class can use “as” operator.
  • Can have a destructor.
  • Can be abstract