I believe C# structs are "value types". They are allocated from stack and passed by value to functions (as opposed to classes that are allocated from heap and a 'pointer' is passed to functions). See ValueObject for more informal description.
Related: