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