.NET の入れ子にされたクラスの使用
MATLAB® では、入れ子にされたクラスを直接インスタンス化できませんが、リフレクションを使って行う方法を以下に示します。次の C# コードは、OuterClass
で入れ子にされた InnerClass
を定義します。
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