Указатели на данные, возвращенные из объектов .NET

Тип .NET в тип MATLAB Отображения

MATLAB® автоматически преобразует данные из объекта .NET в эти типы MATLAB. Эти значения отображаются в сигнатуре метода.

Тип C # .NETТип MATLAB
System.Int16int16 скаляр
System.UInt16uint16 скаляр
System.Int32int32 скаляр
System.UInt32uint32 скаляр
System.Int64int64 скаляр
System.UInt64uint64 скаляр
System.Singlesingle скаляр
System.Doubledouble скаляр
System.Booleanlogical скаляр
System.Byteuint8 скаляр
System.Enumenum
System.Charchar
System.DecimalSystem.Decimal
System.ObjectSystem.Object
System.IntPtrSystem.IntPtr
System.UIntPtrSystem.UIntPtr
System.StringSystem.String
System.Nullable<ValueType>System.Nullable<ValueType>
System.Array

Смотрите Использование массивов с приложениями .NET

System.__ComObject

Смотрите, как MATLAB обрабатывает систему. __ ComObject

class nameclass name
struct namestruct name

Преобразуйте массивы примитивного типа .NET в тип MATLAB

Чтобы преобразовать элементы массива .NET в эквивалентный массив MATLAB, вызовите эти функции MATLAB. Например, см. «пример примитивных массивов .NET в массивы MATLAB».

Тип C # .NETФункция преобразования MATLAB
System.Int16

int16

System.UInt16uint16
System.Int32int32
System.UInt32uint32
System.Int64int64
System.UInt64uint64
System.Singlesingle
System.Doubledouble
System.Booleanlogical
System.Byteuint8

Как MATLAB обрабатывает Строка

Преобразование System.String объект в строку MATLAB, используйте string функция. Преобразование System.String объект для символьного массива MATLAB, используйте char функция. Для примера:

str = System.String('create a System.String');
mlstr = string(str)
mlchar = char(str)
mlstr = 

    "create a System.String"


mlchar =

    'create a System.String'           

MATLAB отображает строковое значение System.String вместо стандартного отображения объектов. Для примера введите:

a = System.String('test')
b = System.String.Concat(a,' hello',' world')
a = 
test
b = 
test hello world

The System.String класс иллюстрирует, как MATLAB обрабатывает поля и свойства, как описано в Call .NET Properties That Take an Argument. Чтобы увидеть справочную информацию о классе, найдите термин System.String в библиотеке классов .NET Framework, как описано в разделе «Чтобы узнать больше о среде .NET».

string функция преобразует String.String массивы (String.String[], String.String[,], etcetera) в MATLAB string массивы с одинаковыми размерностями и размерами. Преобразование зубчатых массивов, например String.String[][], не поддерживается.

Как MATLAB обрабатывает систему. __ ComObject

The System.__ComObject тип представляет корпорацию Майкрософт® COM-объект. Это невидимый, общедоступный класс в mscorlib сборка без открытых методов. При определенных обстоятельствах объект .NET возвращает образец System.__ComObject. MATLAB обрабатывает System.__ComObject на основе типов возвратов, определенных в метаданных.

MATLAB преобразует объект

Если тип возврата метода или свойства сильно типизируется, и результатом вызова является System.__ComObjectMATLAB автоматически преобразует возвращенный объект в соответствующий тип.

Например, предположим, что ваша сборка задает тип, TestType, и предоставляет способ, GetTestType, со следующей подписью.

Тип возвратаИмяАргументы
NetDocTest.TestType RetValGetTestType(NetDocTest.MyClass this)

Тип возврата GetTestType сильно типизируется, и среда .NET возвращает объект типа System.__ComObject. MATLAB автоматически преобразует объект в соответствующий тип, NetDocTest.TestType, показанный в следующем псевдокоде:

cls = NetDocTest.MyClass;
var = GetTestType(cls)
var = 

  TestType handle with no properties.

Объект литья к соответствующему типу

Если тип возврата метода или свойства System.Object, и результатом вызова является System.__ComObject, MATLAB возвращает System.__ComObject. Чтобы использовать возвращенный объект, приведите его к допустимому типу класса или интерфейса. Используйте документацию по продукту для определения допустимых типов для этого объекта.

Чтобы вызвать представителя нового типа, приведите объект с помощью синтаксиса преобразования MATLAB:

objConverted = namespace.classname(obj)

где obj является System.__ComObject тип.

Например, элемент в Microsoft Excel® Наборы листа могут быть графиком или листом. Следующая команда преобразует System.__ComObject переменная mySheet в Chart или Worksheet newSheet объекта:

newSheet = Microsoft.Office.Interop.Excel.interfacename(mySheet);

где interfacename является Chart или Worksheet. Пример см. в разделе Работа с электронными таблицами Microsoft Excel Использование .NET.

Передайте COM-объект между процессами

Если вы передаете COM-объект в функцию или из нее, заблокируйте объект так, чтобы MATLAB не освобождал его автоматически, когда объект выходит из возможностей. Чтобы заблокировать объект, вызовите NET.disableAutoRelease функция. Затем разблокируйте объект, используя NET.enableAutoRelease функция, после того, как вы через использование его.

Как MATLAB обрабатывает System.Nullable

Если .NET возвращает System.Nullable type, MATLAB возвращает соответствующее System.Nullable тип.

A System.Nullable type позволяет назначать null значения типов, таких как числовые типы, которые не поддерживают null значение. Как использовать System.Nullable объект в MATLAB, сначала решите, как обрабатывать null значения.

  • Если вы хотите обработать null значения по-другому по сравнению с <ValueType> значения, используйте HasValue свойство.

  • Если вы хотите, чтобы каждое значение было из базовых <ValueType>, используйте GetValueOrDefault способ. Этот метод присваивает значение по умолчанию типа <ValueType> на null значения.

Используйте переменную базового типа объекта, где это уместно, в любом выражении MATLAB. Для примеров смотрите Pass System.Nullable Аргументы.

Как MATLAB обрабатывает динамический тип

MATLAB обрабатывает динамические типы как System.Object. Например, следующий метод C # exampleMethod имеет динамический входной параметр d и возвращает динамическое выходное значение:

public dynamic exampleMethod(dynamic d)

В следующей таблице показана соответствующая сигнатура функции MATLAB.

Тип возвратаИмяАргументы
System.Object RetValexampleMethod(namespace. classname это,
System.Object d)

Как MATLAB обрабатывает Jagged Arrays

Перед использованием массива .NET необходимо преобразовать его в команду MATLAB. Преобразование:

  • Если форма массива прямоугольная, используйте соответствующую числовую функцию MATLAB.

  • Если массив не прямоугольный, используйте cell функция.

Если заземленный массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.