Add this() here:
public Foo(T1 item1) : this() { Item1 = item1; }
This is because you assign a property, and the compiler cannot infer that the property assigns a value to a variable; it can do other things before the instance is initialized, and this is not allowed, since the structure may contain garbage data. Therefore, you must first initialize it with the default constructor, and then do what you want.
Mehrdad
source share