2014-09-25 53 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