CLASSES WILL BE USED to implement most objects. Sometimes, however, it may be desirable to create an object that behaves like one of the built-in types; one that is cheap and fast to allocate and doesn’t have the overhead of references. In that case, a value type is used, 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.