Naw*_*waz 10 c# class-design value-type reference-type
我的问题是:
还请讨论每个的优点和缺点.我也想了解这一点.
对此似乎有很多困惑,Jon Skeet 在他的书“C# In Depth, 2nd Ed”中很好地澄清了这一点。(第 2.3 节)。
我个人的方法(可能正确也可能不正确)是仅使用结构/枚举(值类型)来表示我知道我将在某种逻辑或数学运算中经常使用的轻量级原子数据结构 - 想想Point,等等。
这样我认为我可以避免垃圾收集性能损失。然而,Jon 在他书中的那部分指出,没有真正的保证,尤其是在运行时的新版本中,是否会在堆栈中出现某些内容。
所以我最好的答案是谨慎使用结构之类的东西,并且如果你使用它们,请非常清楚你为什么要使用它们。注意过早的优化。如果你能拿到一份副本,请阅读 Jon 书中的那部分,因为他很好地阐明了整个主题。
相关:何时使用结构?