Main Content

Clases anidadas

En, no puede crear una instancia de una clase anidada directamente, pero aquí es cómo hacerlo a través de la reflexión.MATLAB® El siguiente código de C# define anidado en:InnerClassOuterClass

namespace MyClassLibrary {   public class OuterClass   {       public class InnerClass       {           public String strmethod(String x)           {               return "from InnerClass " + x;           }        }    } } 

Si el ensamblado está en su carpeta, cargue el archivo:MyClassLibraryc:\work

a = NET.addAssembly('C:\Work\MyClassLibrary.dll'); a.Classes 
ans =      'MyClassLibrary.OuterClass'     'MyClassLibrary.OuterClass+InnerClass' 

Para llamar, escriba:strmethod

t = a.AssemblyHandle.GetType('MyClassLibrary.OuterClass+InnerClass'); sa = System.Activator.CreateInstance(t); strmethod(sa,'hello') 
ans =  from InnerClass hello