`readonly` struct, `in` modifier and defensive copies - C#