when should i use struct rather than class in c#
Consider defining a structure instead of a class if instances
of the type are small and commonly short-lived or are commonly
embedded in other objects.
Do not define a structure unless the type has all of the following
characteristics:
• It logically represents a single value, similar to
primitive types (integer, double, and so on).
• It has an instance size smaller than 16 bytes.
• It is immutable.
• It will not have to be boxed frequently.