我有一個的意思模擬(非可導)結構,並添加功能(事件)
它具有完全相同的公共接口的類,但有些自定義的內部代碼用於突變事件。
我需要將所述類傳遞給一個函數,該函數需要我的類模擬結構,但是我需要避免裝箱/取消裝箱,因爲它太慢了。解讀結構仿真器沒有接口/拳擊在託管環境中的
如果仿真的結構不在我的控制下,並且不從接口派生,我該如何獲得上述函數來接受我的類?我的課有完全相同的公共職能/成員/語法。
具體的例子:
的XNA GraphicsDevice.DrawUserPrimitives
功能請求的IVertexType
的陣列。
看起來像這樣的浪費有時必須調用List.ToArray(),從而使一個完整的副本,只是因爲一個函數特別需要一個System.Array類型的輸入。列表具有與數組相同的語法和功能。如果函數接受輸入類,那就沒有任何問題。
在這裏,有一些神奇的仙塵。在你的代碼上添加代碼是實現你想要的唯一方法。 :) – jalf
'List'和'Array'具有不同的(但相似的)語法和功能。 'DrawUserPrimitives'中數組的內部使用可能會利用塊副本,固定數組長度等。如果您想避免「List.ToArray」調用,也許應該更改自己的設計。 –
@ChrisSinclair以及函數只需要一個數組,所以我不得不將頂點存儲爲一個數組。我將它作爲列表存儲,因爲數據是不穩定的,所以我能做些什麼? – Griffin