Share via

struct (C# Reference)

A struct type is a value type that is typically used to encapsulate small groups of related variables, such as the coordinates of a rectangle or the characteristics of an item in an inventory. The following example shows a simple struct declaration:

public struct Book
    public decimal price;
    public string title;
    public string author;


Structs can also contain constructors, constants, fields, methods, properties, indexers, operators, events, and nested types, although if several such members are required, you should consider making your type a class instead.

Structs can implement an interface but they cannot inherit from another struct. For that reason, struct members cannot be declared as protected.

For more information, see Structs (C# Programming Guide).

C# Language Specification

For more information, see the following sections in the C# Language Specification:

  • 11 Structs

See Also


C# Programming Guide


C# Keywords

Built-In Types Table (C# Reference)

Value Types (C# Reference)

class (C# Reference)

interface (C# Reference)

Classes and Structs (C# Programming Guide)

Other Resources

C# Reference

Default Values Table (C# Reference)

Types (C# Reference)