I don’t know. You spent a lot of time mastering the oddities of the struct types in the C# world, carefully preparing yourself for the subtle copying that happens when you call through an interface, and then a blog post turns up that shows that the behaviour when you call a method on a struct depends on whether it is held in a readonly field or not.
struct TestStruct : IInc
public int count;
public void Increment()
Defining a field of the appropriate type, we see 0,1,2 is printed by the following
The first value printed is zero because the call via the cast boxes the structure and hence copies it before the call mutates it.
The shocking behaviour is what happens if you change the field declaration to
readonly TestStruct struct1;
when the output changes to 0,0,0.