我知道拳击是一个流行的概念,有很多可用的信息,但我有几个问题我无法真正找到答案:
1)如果装箱导致值类型(结构)被转换为对象(引用类型)或引用类型,那么为什么要使用将被装箱并导致性能损失的值类型?我知道结构或类在某些情况下的好处和适用性。据说 (1) 值(值类型)倾向于在堆栈中的一个临时存储空间中存在,但要多长时间?如果我不需要该类型,我如何确保它在那个时候得到照顾和处置?或者这就是一次性模式发挥作用的地方?我认为使用结构的原因将是由于它的好处。
有趣的是,如果我使用一个结构来存储两个字符串和一个 DateTime 字段,那么该结构将同时保存两个引用(字符串)和 DateTime。我显然认为这比分散的值要快。在这个设计中有什么我需要注意的吗?(2)。
1) http://en.csharp-online.net/Classes, Structs, and Objects——装箱和拆箱
2) http://dotnetperls.com/Content/Struct-Examples.aspx
我在这里搜索了我想要的答案,但没有运气。我通常在这个站点上搜索诸如 GC、泛型、异常处理等主题,因为有很多智慧可以学习和分享。
感谢所有海报的(潜在)教育!请原谅任何潜在的天真。学习内部结构让我很好地花一些时间来理解 IL 等(很快要解决的问题)。