Assume that we have the following struct definition that uses generics:
struct
public struct Foo { public T First; public T Second;
That's a requirement of structs in general -- it has nothing to do with generics. Your constructor must assign a value to all fields.
Note the same error happens here:
struct Foo { public int A; public int B; public Foo() { A = 1; } }