In C#, a struct is a value type that allows you to create lightweight, stack-allocated data structures. Structs are commonly used for small, simple objects that contain a few data fields. They are beneficial when you need high performance and minimal memory overhead. Unlike classes, structs do not support inheritance or have default constructors. Structs are copied by value rather than by reference.