2014-09-25 27 views
1

我從字節[]中的非託管代碼分配數據存儲器。 Iam能夠將該數組轉換爲sbyte [],並將其每個事件賦予一個matlab監聽器。但matlab無法將此數據解釋爲sbyte []。 但是Matlab能夠理解System.SByte []對象。所以我想將sbyte []數組轉換爲SByte []並賦予matlab腳本。我不想複製每個元素到一個新的數組。從sbyte []轉換爲SByte []爲matlab事件

有沒有人有這方面的經驗?

+1

恩......'sbyte' ***是***'System.SByte'。他們**完全一樣**。因此'sbyte []'***是***'System.SByte []'...你能更具體地說明這裏發生的錯誤嗎? – 2014-09-25 11:40:46

回答

1

這裏一個輕浮的答案是:

sbyte[] arr = GetData(); 
System.SByte[] arr2 = arr; 
CallMatlab(arr2); 

然而,這基本上是一個非答案,因爲它不會做任何事情sbyte只是一個別名global::System.SByte。他們恰恰是同樣的事情。沒有轉換是必要或適當的,因爲他們已經是相同的東西(忽略故意的邊緣情況,如聲明自己的本地類型稱爲SByte)。 C#不像Java;在Java中,(例如)intInteger之間存在重要差異;在C#中,這種情況並非如此:int === System.Int32