首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在matlab中使用.net自定义类

在matlab中使用.net自定义类
EN

Stack Overflow用户
提问于 2013-01-29 17:24:12
回答 1查看 1.2K关注 0票数 4

我目前正在使用Matlab导入我拥有的自定义.NETDLL库,

使用AssemblyInfo = NET.addAssembly('c:\myClasses.dll')

清单disp(AssemblyInfo.Classes)公开了该库的自定义类,如

代码语言:javascript
复制
'MyLib.ClassA'  
'MyLib.ClassB'  
'MyLib.ClassA+eResults'  

我正在使用myVar = MyLib.ClassA;在matlab中创建一个.net类变量(它工作得很好),

但是第二个类没有构造函数,所以myVar = MyLib.ClassB;导致

No constructor 'MyLib.ClassB' with matching signature found.

第二个问题是.NET类MyLib.ClassA+eResults中的加号(+),

当我尝试myVar = MyLib.ClassA+eResults;时,它会导致错误

Undefined function or variable 'eResults'.

有没有办法在matlab中创建一个实例自定义类MyLib.ClassB

加号是什么意思,如何创建一个没有任何语法错误的MyLib.ClassA+eResults实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-07 17:39:18

要创建类的实例,它必须是公共的,并且具有公共构造函数。如果classB只有一个带有多个参数的自定义构造函数,您可以像这样实例化它:

代码语言:javascript
复制
var = MyLib.ClassB(x, y);

对于第二个问题,+表示eResults是ClassA的nested class。您不能直接实例化,但这里描述了一种基于反射的解决方法:Working With Nested Classes

代码语言:javascript
复制
a = NET.addAssembly('c:\myClasses.dll');
t = a.AssemblyHandle.GetType('MyLib.ClassA+eResults');
var = System.Activator.CreateInstance(t);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14579472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档