Here is the example with comments:
class Program { // first version of structure public struct D1 { public double d; public int f
If you make D2 like this
public struct D2 { public double d; public double f; public string s; }
it's true.
if you make it like this
public struct D2 { public double d; public double f; public double u; }
It's still false.
it seems like it's false if the struct only holds doubles.