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