我需要將short []轉換爲對象[]。原因是需要我在相同的成員變量中存儲short []或char [],具體取決於另一個屬性。我使用的類是用C++/CLI編寫的,並使用C#。 C++/CLI屬性是將C#short []轉換爲對象[]
property cli::array<Object^>^ Data {
cli::array<Object^>^ get();
void set(cli::array<Object^>^ d);
}
有沒有人知道如何將short []或char []轉換爲object []?還是有更好的解決方案,不要使用cli::array<Object^>^
作爲基礎數據類型?
更新:我知道我可以通過所有這些項目走,並將其轉換爲對象或使用LINQ的方法shortArr.Cast<object>().ToArray()
。但我想有一個更高性能的解決方案,所以也許有一種方法可以爲這個屬性使用另一個基礎數據類型?
「一個短[]或一個char []在同一個成員變量,根據另一個屬性」 - 爲什麼?這聽起來像是一個X/Y問題。 C#中的屬性是免費的,並且C#還支持''StructLayout]''類似'union'結構。 – Dai
「或者有更好的解決方案,不要使用'cli :: array
沒有轉換,數組內容在內存中物理上不同。它從每個元素4個或8個字節(取決於位數)摺疊爲2或1.因此,您必須*複製。如果性能很重要,則一系列盒裝值不屬於您的功能列表。 –