A struct and a class both encapsulate data and methods in a new type. When you are creating a new type, you’ll generally create a new class. But there are cases when a struct is the better choice.
Create a struct, rather than a class, when all of the following is true:
- You want value type semantics, that is–a variable of this type directly contains the data and a copy is made whenever you assign the value to a new variable or pass the variable to a method
- Data stored in the struct won’t be modified after an instance is created or does not change very often
- You don’t need to inherit from another type (a struct inherits only from System.ValueType)
- You need to store only a small amount of data in the type