【发布时间】:2016-10-01 20:43:24
【问题描述】:
我有一个 Phone 类型,它有两个属性:Number 和 Description(工作、家庭、手机等)。我不知道应该是class 还是struct。
根据MSDN:
避免定义结构,除非该类型具有以下所有特征:
- 它在逻辑上表示单个值,类似于原始类型(int、double 等)。
- 实例大小小于 16 字节。
- 它是不可变的。
- 不必经常装箱。
我确定它不会超过 16 个字节,但我不确定它是否满足其他要求。那么我应该使用哪个?
【问题讨论】:
-
“它是不可变的。”你应该使用一个类。
-
就个人而言,我总是默认选择
class。如果您随后发现自己遇到了很多麻烦,那么考虑该类型是否实际上是struct。 -
@Damien_The_Unbeliever 请把它放在答案中
-
在 SO 上已经有了很好的解释:programmers.stackexchange.com/questions/92339/…
-
第一眼看起来像
struct,但class比struct更灵活,所以如果你不希望有性能问题(你没有数百万个实例,你不想要微秒级响应等)然后从class开始。