Обработка данных, возвращенных в объекты.NET

Тип.NET к отображению типа MATLAB

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

C. СЕТЕВОЙ типТип MATLAB
Система. Int16Скаляр int16
Система. Uint16Скаляр uint16
Система. Int32Скаляр int32
Система. Uint32Скаляр uint32
Система. Int64Скаляр int64
Система. Uint64Скаляр uint64
Система. ЕдинственныйСкаляр single
Система. 'double'Скаляр double
Система. Булевская переменнаяСкаляр logical
Система. БайтСкаляр uint8
Система. Перечислениеenum
Система. 'char''char'
Система. Десятичное числоСистема. Десятичное число
Система. ОбъектСистема. Объект
Система. IntPtrСистема. IntPtr
Система. UIntPtrСистема. UIntPtr
Система. СтрокаСистема. Строка
Система. Nullable <ValueType>Система. Nullable <ValueType>
Система. Массив

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

Система. __ ComObject

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

className className
struct namestruct name

Как 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

Класс System.String иллюстрирует, как MATLAB обрабатывает поля и свойства, как описано в Свойствах.NET Вызова Который Взятие Аргумент. Чтобы видеть справочную информацию о классе, ищите термин System.String в Библиотеке классов Среды.NET, как описано в Узнать больше о Среде.NET.

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

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

Тип System.__ComObject представляет COM-объект Microsoft®. Это - невидимый, общедоступный класс в блоке mscorlib без открытых методов. При определенных обстоятельствах объект.NET возвращает экземпляр System.__ComObject __ ComObject. MATLAB обрабатывает System.__ComObject на основе типов возврата, заданных в метаданных.

MATLAB преобразовывает объект

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

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

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

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

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

  TestType handle with no properties.

Кастинг объекта адаптировать тип

Если типом возврата метода или свойства является System.Object, и результатом вызова является System.__ComObject, MATLAB возвращает System.__ComObject __ 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 обрабатывает систему. Nullable

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

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

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

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

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

Как Указатели MATLAB динамический Тип

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

public dynamic exampleMethod(dynamic d)

Следующая таблица показывает соответствующую подпись функции MATLAB.

Возвратите типИмяАргументы
Система. Объектный RetValexampleMethod(namespace.classname это,
Система. Объект d)

Как указатели MATLAB зубчатые массивы

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

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

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

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

Была ли эта тема полезной?