Regarding fields C# language Specification says:
10.5.4 Field initialization
The initial value of a field, whether it be a static field or an
instance field, is the default value (§5.2) of the field’s type. It is
not possible to observe the value of a field before this default
initialization has occurred, and a field is thus never “uninitialized
11.3.4 Default values
However, since structs are value types that cannot be null, the
default value of a struct is the value produced by setting all value
type fields to their default value and all reference type fields to
null. The default value of a struct corresponds to the value returned
by the default constructor of the struct (§4.1.2).
PS: in case of class it gives error because reference type value by default is null