gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:37 24 4
gpt4 key购买 nike

我目前正在使用 Matlab 导入我拥有的自定义点 NET dll 库,
使用 AssemblyInfo = NET.addAssembly('c:\myClasses.dll')

list disp(AssemblyInfo.Classes) 公开库的自定义类,如

'MyLib.ClassA'  
'MyLib.ClassB'
'MyLib.ClassA+eResults'

我正在使用 myVar = MyLib.ClassA; 在 matlab 中创建一个 .net 类变量(工作正常),
但是第二个类没有构造函数,所以 myVar = MyLib.ClassB; 结果是
未找到具有匹配签名的构造函数“MyLib.ClassB”。

第二个问题是 .NET 类 MyLib.ClassA+eResults 处的加号 (+),
其中在我尝试 myVar = MyLib.ClassA+eResults;
时导致错误未定义的函数或变量“eResults”。

有没有办法在 matlab 中创建实例自定义类 MyLib.ClassB
加号是什么意思,如何创建没有任何语法错误的 MyLib.ClassA+eResults 实例?

最佳答案

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

var = MyLib.ClassB(x, y);

对于第二期,+ 表示 eResults 是 nested class A类。您不能直接实例化,但这里有一个基于反射的解决方法:Working With Nested Classes :

a = NET.addAssembly('c:\myClasses.dll');
t = a.AssemblyHandle.GetType('MyLib.ClassA+eResults');
var = System.Activator.CreateInstance(t);

关于.net - 在 matlab 中使用 .net 自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com