Main Content

.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