我有一个开始生活可变的课程,但我已经让它变得一成不变.我应该改成它struct吗?选择一个而不是另一个需要考虑哪些因素?我的特殊情况是一个Point类型类(它代表一个自定义坐标系中的坐标),由4个int字段组成,加上一些属性以不同的方式访问相同的数据.我注意到这String是一个类并且是不可变的,因此必须有一些用例.
通常,不,您不应该将其更改为结构.仅仅因为它是不可变的并不意味着它自动成为一个结构的良好候选者.
结构应该很小.使用四个整数时,它只是建议的16字节限制,结构的性能开始下降.
结构应该代表某种形式的单个实体.也许你的班级会这样做,但从你的描述来看,这听起来不太可能.
结构比类更难正确实现.它应该像比较一样表现得很好,所以要实现的东西比预期的更多.
除非你有充分的理由将它作为结构实现,比如性能问题,否则你应该将你的类保持为类.