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 | |
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
The System.String класс иллюстрирует, как MATLAB обрабатывает поля и свойства, как описано в Call .NET Properties That Take an Argument. Чтобы увидеть справочную информацию о классе, найдите термин System.String в библиотеке классов .NET Framework, как описано в разделе «Чтобы узнать больше о среде .NET».
string функция преобразует String.String массивы (String.String[], String.String[,], etcetera) в MATLAB string массивы с одинаковыми размерностями и размерами. Преобразование зубчатых массивов, например String.String[][], не поддерживается.
The System.__ComObject тип представляет корпорацию Майкрософт® COM-объект. Это невидимый, общедоступный класс в mscorlib сборка без открытых методов. При определенных обстоятельствах объект .NET возвращает образец System.__ComObject. MATLAB обрабатывает System.__ComObject на основе типов возвратов, определенных в метаданных.
Если тип возврата метода или свойства сильно типизируется, и результатом вызова является System.__ComObjectMATLAB автоматически преобразует возвращенный объект в соответствующий тип.
Например, предположим, что ваша сборка задает тип, 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 type, MATLAB возвращает соответствующее System.Nullable тип.
A System.Nullable type позволяет назначать null значения типов, таких как числовые типы, которые не поддерживают null значение. Как использовать System.Nullable объект в MATLAB, сначала решите, как обрабатывать null значения.
Если вы хотите обработать null значения по-другому по сравнению с <ValueType> значения, используйте HasValue свойство.
Если вы хотите, чтобы каждое значение было из базовых <ValueType>, используйте GetValueOrDefault способ. Этот метод присваивает значение по умолчанию типа <ValueType> на null значения.
Используйте переменную базового типа объекта, где это уместно, в любом выражении MATLAB. Для примеров смотрите Pass System.Nullable Аргументы.
MATLAB обрабатывает динамические типы как System.Object. Например, следующий метод C # exampleMethod имеет динамический входной параметр d и возвращает динамическое выходное значение:
public dynamic exampleMethod(dynamic d)
В следующей таблице показана соответствующая сигнатура функции MATLAB.
| Тип возврата | Имя | Аргументы |
|---|---|---|
System.Object RetVal | exampleMethod | ( |
Перед использованием массива .NET необходимо преобразовать его в команду MATLAB. Преобразование:
Если форма массива прямоугольная, используйте соответствующую числовую функцию MATLAB.
Если массив не прямоугольный, используйте cell функция.
Если заземленный массив многомерен, необходимо индивидуально преобразовать массивы в каждой размерности.