2014-09-25 2 views
1

Я выделяю память данных из неуправляемого кода в байт []. Iam способен преобразовать этот массив в sbyte [] и передать его каждому событию слушателю matlab. Но Matlab не может интерпретировать эти данные как sbyte []. Но Matlab способен понять объект System.SByte []. Поэтому я хочу преобразовать массив sbyte [] в SByte [] и передать скрипт matlab.Преобразование из sbyte [] в SByte [] для события matlab

Но я не хочу копировать каждый элемент в новый массив.

Есть ли у кого-нибудь опыт?

+1

um .... 'sbyte' *** is ***' System.SByte'. Они ** точно ** то же самое. Следовательно 'sbyte []' *** is *** 'System.SByte []' ... можете ли вы более конкретно узнать об ошибке, которая здесь возникает? –

ответ

1

Легкомысленный ответ здесь будет:

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

Однако это в основном без ответа, потому что ничего не делать. sbyte - это просто псевдоним до global::System.SByte. Они точно то же самое. Никакое преобразование не требуется или не подходит, потому что они уже одно и то же: (игнорируя преднамеренные краевые кейсы, такие как объявление собственного локального типа SByte). C# не похож на Java; в Java существует важное различие между (например) int и Integer; в C# это просто не так: int === System.Int32.

Смежные вопросы