主要内容

处理。net对象返回的数据

net类型MATLAB键入映射

MATLAB®自动将。net对象的数据转换为这些MATLAB类型。这些值显示在方法签名中。

c#。net类型 MATLAB类型
系统。Int16 int16标量
系统。UInt16 uint16标量
system.int32. INT32.标量
系统。UInt32 uint32标量
system.int64. int64标量
system.uint64. uint64标量
系统。单 标量
system.double. 双倍的标量
system.boolean. 逻辑标量
系统。字节 uint8标量
系统。枚举 枚举
系统。字符 char
系统。小数 系统。小数
系统。对象 系统。对象
系统。IntPtr 系统。IntPtr
system.uintptr. system.uintptr.
系统。字符串 系统。字符串
system.nullable system.nullable
系统。数组

看到在。net应用程序中使用数组

系统.__ comobject.__

看到Matlab如何处理系统.__ comobject

类名 类名
结构体名称 结构体名称

将原始.NET类型的转换阵列转换为MATLAB类型

要将. net数组的元素转换为等效的MATLAB数组,请调用这些MATLAB函数。例如,请参见将原始.NET数组转换为MATLAB阵列

c#。net类型 MATLAB转换函数
系统。Int16

int16

系统。UInt16 uint16
system.int32. INT32.
系统。UInt32 uint32
system.int64. int64
system.uint64. uint64
系统。单
system.double. 双倍的
system.boolean. 逻辑
系统。字节 uint8

如何MATLAB处理system.string.

将一个系统。字符串对象到MATLAB字符串,使用字符串函数。将一个系统。字符串对象到MATLAB字符数组,使用char函数。例如:

str =系统。字符串('创建一个system.string');MLSTR = string(str)
mlstr =“创建一个system.string”MLCR ='创建系统.String'

的字符串值系统。字符串对象,而不是标准的对象显示。例如,类型:

一个=系统。字符串(“测试”)b = system.string.concat(a,“你好”' 世界'
A = test b = test hello world

系统。字符串类演示了MATLAB如何处理字段和属性,如调用接受参数的。net属性.要查看关于该类的参考信息,请搜索术语系统。字符串在。net框架类库中了解更多关于。net框架的信息

字符串功能转换字符串。字符串数组(string.string []字符串。字符串[,],eteteta)到matlab字符串具有相同尺寸和大小的数组。例如,交错数组的转换string.string [][],不支持。金宝app

如何MATLAB处理System.__ComObject

系统.__ comobject.__类型代表A.微软®com目的。这是一个不可见的公共课程mscorlib.没有公共方法的程序集。在某些情况下,.NET对象返回系统.__ comobject.__.MATLAB处理系统.__ comobject.__基于元数据中定义的返回类型。

MATLAB转换对象

如果强烈打字方法或属性的返回类型,并且调用的结果是系统.__ comobject.__,MATLAB会自动将返回的对象转换为适当的类型。

例如,假设您的组装定义了类型,TestType,并提供一个方法,GetTestType,并签名如下。

返回类型 的名字 争论
netdoctest.testtype.RetVal GetTestType (NetDoctest.myClass这个)

的返回类型GetTestType强键入,.NET Framework返回类型的对象系统.__ comobject.__.MATLAB自动将对象转换为合适的类型,netdoctest.testtype.,如下所示伪代码

cls = netdoctest.myclass;var = getTesttype(CLS)
var = testtype手柄,没有属性。

将对象转换为适当的类型

如果方法或属性的返回类型为系统。对象,调用的结果是系统.__ comobject.__,Matlab回归系统.__ comobject.__.要使用返回的对象,将其投入有效类或接口类型。使用您的产品文档来标识此对象的有效类型。

要调用新类型的成员,使用MATLAB转换语法强制转换对象:

objConverted =命名空间班级名称(obj)

在哪里obj是一个系统.__ comobject.__类型。

例如,一个项目微软Excel.®工作表收集可以是一个图表或工作表。下面的命令转换系统.__ comobject.__多变的mySheet到A.图表或者工作表对象单张报纸

单张报纸= Microsoft.Office.Interop.Excel。interfacename.(MySheet);

在哪里interfacename.图表要么工作表.例如,请参见使用Microsoft Excel电子表格使用.NET

通过进程之间的COM对象

如果将COM对象传递给函数或从函数传递给它,则锁定该对象,以便当对象超出作用域时,MATLAB不会自动释放它。要锁定对象,请调用NET.disableAutoRelease函数。然后解锁对象,使用NET.enableAutoRelease函数,在您使用它之后。

如何MATLAB处理system.nullable.

如果。net返回系统。可以为空类型,Matlab返回相应的系统。可以为空类型。

一个系统。可以为空类型允许你分配无效的值为类型,例如数字类型,不支持金宝app无效的价值。使用一个系统。可以为空对象,首先决定如何处理无效的值。

  • 如果你想处理无效的值不同于值,使用HasValue财产。

  • 如果你想要每个值都是潜在的,可以使用GetValueOrDefault方法。此方法指定type的默认值无效的值。

在任何MATLAB表达式中适当使用对象的底层类型的变量。有关示例,请参见pass system.nullable参数

如何MATLAB处理动态类型

matlab处理动态类型系统。对象.例如,以下C#方法examplemethod.有一个动态输入参数d并返回一个动态输出值:

public dynamicexampleemethod(动态d)

对应的MATLAB函数签名如下表所示。

返回类型 的名字 争论
系统。对象RetVal examplemethod. 命名空间班级名称这,
系统。对象d)

如何MATLAB处理不规则数组

在MATLAB命令中使用。net锯齿数组之前,必须对其进行转换。转换:

  • 如果阵列的形状为矩形,则使用相应的MATLAB数值函数。

  • 如果数组不是矩形的,则使用细胞函数。

如果交错数组是多维的,则必须分别转换每个维度中的数组。