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

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

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

Тип.NET C#Тип MATLAB
System.Int16Скаляр int16
System.UInt16Скаляр uint16
System.Int32Скаляр int32
System.UInt32Скаляр uint32
System.Int64Скаляр int64
System.UInt64Скаляр uint64
System.SingleСкаляр single
System.DoubleСкаляр double
System.BooleanСкаляр logical
System.ByteСкаляр uint8
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

Как 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. MATLAB обрабатывает System.__ComObject на основе типов возврата, заданных в метаданных.

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

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

Например, предположите, что ваш блок задает тип, 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 обрабатывает систему.

Если.NET возвращает тип System.Nullable, MATLAB возвращает соответствующий тип System.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.

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

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

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

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

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

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