Следующая таблица показывает, как 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
.
Если зубчатый массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.