Here is the example with comments:
class Program { // first version of structure public struct D1 { public double d; public int f
Just an update for this 10 years old bug: it has been fixed (Disclaimer: I'm the author of this PR) in .NET Core which would be probably released in .NET Core 2.1.0.
The blog post explained the bug and how I fixed it.