ちょっと前C#スレの方で話題になった話だけど、プロパティーの型としては構造体の方が便利。

値型からわざわざイミュータブルにしなくても、ゲッター経由でメンバーを変更する
不適切な使い方を避けられるからね