在关于 SO的讨论之后,我已经多次阅读了可变结构是“邪恶”的评论
C# 中的可变性和结构的实际问题是什么?
结构是值类型,这意味着它们在传递时会被复制。
因此,如果您更改副本,您只会更改该副本,而不是原始副本,也不会更改可能存在的任何其他副本。
如果您的结构是不可变的,那么所有由值传递产生的自动副本将是相同的。
如果你想改变它,你必须有意识地通过使用修改后的数据创建一个新的结构实例来做到这一点。(不是副本)