All struct types inherit from System.ValueType. And further from object. Structures are never abstract and they are always implicitly sealed. So struct types do not support inheritance. And therefore, the struct data member cannot be declared protected. The abstract and sealed modifiers are not permitted for a struct definition. A struct is not permitted to declare a parameterless constructor.