В MATLAB® вы не можете непосредственно инстанцировать вложенного класса, но здесь - как сделать это посредством отражения. Следующий код C# задает InnerClass
, вложенный в OuterClass
:
namespace MyClassLibrary { public class OuterClass { public class InnerClass { public String strmethod(String x) { return "from InnerClass " + x; } } } }
Если блок MyClassLibrary
находится в вашей папке c:\work
, загрузите файл:
a = NET.addAssembly('C:\Work\MyClassLibrary.dll');
a.Classes
ans = 'MyClassLibrary.OuterClass' 'MyClassLibrary.OuterClass+InnerClass'
Чтобы вызвать strmethod
, введите:
t = a.AssemblyHandle.GetType('MyClassLibrary.OuterClass+InnerClass'); sa = System.Activator.CreateInstance(t); strmethod(sa,'hello')
ans = from InnerClass hello