Structs (Value Types)
Classes are used to implement most objects. Sometimes, however, it may be desirable to create an object that behaves like one of the built-in types (such as int, float, or bool)—one that is cheap and fast to allocate and doesn’t have the overhead of references. In that case, you can use a value type, which is done by declaring a struct in C#.
Structs act similarly to classes, but with a few added restrictions. They can’t inherit from any other type (though they implicitly inherit from object), and other classes can’t inherit from them.1
A Point Struct
In a graphics system, a value class can be used to encapsulate ...