Следующая таблица показывает, как 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.Enum | enum |
System.Char | char |
System.Decimal | System.Decimal |
System.Object | System.Object |
System.IntPtr | System.IntPtr |
System.UIntPtr | System.UIntPtr |
System.String | System.String |
System.Nullable<ValueType> | System.Nullable<ValueType> |
System.Array | |
System.__ComObject | |
class name | class name |
struct name | struct name |
Чтобы преобразовать объект 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[][], не поддержано.
Тип System.__ComObject представляет COM-объект Microsoft®. Это - невидимый, общедоступный класс в блоке mscorlib без открытых методов. При определенных обстоятельствах объект.NET возвращает экземпляр System.__ComObject. MATLAB обрабатывает System.__ComObject на основе типов возврата, заданных в метаданных.
Если тип возврата метода или свойства со строгим контролем типов, и результатом вызова является System.__ComObject, MATLAB автоматически преобразовывает возвращенный объект в соответствующий тип.
Например, предположите, что ваш блок задает тип, TestType, и предоставляет метод, GetTestType, со следующей подписью.
| Возвратите тип | Имя | Аргументы |
|---|---|---|
NetDocTest.TestType RetVal | GetTestType | (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-объект или от функции, блокируете объект так, чтобы MATLAB автоматически не выпускал его, когда объект выходит из осциллографа. Чтобы заблокировать объект, вызовите функцию NET.disableAutoRelease. Затем разблокируйте объект, с помощью функции NET.enableAutoRelease, после того, как вы будете посредством использования его.
Если.NET возвращает тип System.Nullable, MATLAB возвращает соответствующий тип System.Nullable.
Тип System.Nullable позволяет вам присвоить значения null типам, таким как числовые типы, которые не поддерживают значение null. Чтобы использовать объект System.Nullable в MATLAB, сначала решите, как обработать значения null.
Если вы хотите обработать значения null по-другому по сравнению со значениями <ValueType>, используйте свойство HasValue.
Если вы хотите, чтобы каждое значение было базового <ValueType>, используйте метод GetValueOrDefault. Этот метод присваивает значение по умолчанию типа <ValueType> к значениям null.
Используйте переменную базового типа объекта, где это необходимо, в любом выражении MATLAB. Для примеров смотрите Систему Передачи. Аргументы Nullable.
MATLAB обрабатывает динамические типы как System.Object. Например, следующий метод C# exampleMethod имеет динамический входной параметр d и возвращает динамическое выходное значение:
public dynamic exampleMethod(dynamic d)
Следующая таблица показывает соответствующую подпись функции MATLAB.
| Возвратите тип | Имя | Аргументы |
|---|---|---|
System.Object RetVal | exampleMethod | ( |
Необходимо преобразовать зубчатый массив.NET перед использованием его в команде MATLAB. Преобразовывать:
Если форма массива является прямоугольной, используйте соответствующую числовую функцию MATLAB.
Если массив не является прямоугольным, используйте функцию cell.
Если зубчатый массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.