结构应该代表 价值 。值不变。数字12是永恒的。
但是,请考虑:
Foo foo = new Foo(); // a mutable structfoo.Bar = 27;Foo foo2 = foo;foo2.Bar = 55;
现在foo.Bar和foo2.Bar是不同的,这通常是意外的。特别是在诸如属性之类的场景中(幸运的是编译器会检测到此情况)。而且还有收藏等;您如何明智地对其进行变异?
使用可变结构,数据丢失太容易了。

结构应该代表 价值 。值不变。数字12是永恒的。
但是,请考虑:
Foo foo = new Foo(); // a mutable structfoo.Bar = 27;Foo foo2 = foo;foo2.Bar = 55;
现在foo.Bar和foo2.Bar是不同的,这通常是意外的。特别是在诸如属性之类的场景中(幸运的是编译器会检测到此情况)。而且还有收藏等;您如何明智地对其进行变异?
使用可变结构,数据丢失太容易了。