0
在一個blog entry, Luca Bolognese幾點思考這種想法約結構與類作爲成員字段:C#:結構成員是否更高性能?
使用一個結構的理由是爲了不 的 棧上分配一個附加的目的。這允許這種解決方案作爲'高性能'爲 ,因爲簡單地在類本身上編碼了 字段。或至少在 至少我認爲是這樣的...
這有多準確?
首先,他不是指在堆上分配額外的對象嗎?
而且,不會增加內存佔用的代價,不會使用結構稍微減少分配時間(特別是如果類成員是延遲加載的話)?
你會推薦這種結構在某些情況下類的結構嗎?
感謝馬克 - 所以,擴展在該列表中的最後一項:如果我需要經常使用/傳遞一個類的字段(從而拆箱)字段不應該是一個結構,是嗎? – 2009-12-01 21:13:18
@JeffMeatballYang:只有當它們被複制到引用類型(例如'Object','ValueType'或任何接口類型)的存儲位置(變量,參數,字段等)時,纔會對值類型進行裝箱。如果在「列表」中存儲「矩形」,則不會有拳擊。但是,如果將一個'Rectangle'存儲在'List'中,則會出現裝箱,因爲後者需要將每個'Rectangle'存儲在類型爲Object的位置。雖然有一些情況下拳擊將是不可避免的,一般來說,如果你拳擊價值類型,你做錯了什麼。 –
supercat
2012-02-26 19:10:41