我从byte []中的非托管代码分配数据内存。我能够在sbyte []中转换该数组,并将每个事件提供给一个matlab监听器。但是matlab无法将此数据解释为sbyte []。 但是Matlab能够理解System.SByte []对象。所以我想将sbyte []数组转换为SByte []并提供给matlab脚本。
但我不想将每个元素复制到一个新数组。
有人有经验吗?
答案 0 :(得分:1)
这里一个无聊的答案是:
sbyte[] arr = GetData();
System.SByte[] arr2 = arr;
CallMatlab(arr2);
但是,这基本上是一个非答案,因为没有做任何事情。 sbyte
只是别名到global::System.SByte
。它们正好相同的东西。没有必要或适当的转换,因为它们已经是相同的东西(忽略故意的边缘情况,例如声明自己的本地类型称为SByte
)。 C#不像Java;在Java中,(例如)int
和Integer
之间存在重要差异;在C#中,情况并非如此:int
=== System.Int32
。