Nested classes

Top  Previous  Next

New features since Delphi 7 > Nested classes

The possibility to work with nested classes is new since Delphi 7. Here an example from:

 

http://docwiki.embarcadero.com/RADStudio/Rio/en/Nested_Type_Declarations

 

 

type

      TOuterClass = class

       strict private

          myField: Integer;

 

       public

          type

             TInnerClass = class

              public

                myInnerField: Integer;

                procedure innerProc;

             end;

 

         procedure outerProc;

       end;

 

implementation

 

procedure TOuterClass.TInnerClass.innerProc;

begin

  // ...

end;

 

procedure foo;

var

   x: TOuterClass;

   y: TOuterClass.TInnerClass;

 

begin

   x := TOuterClass.Create;

   x.outerProc;

   //...

   y := TOuterClass.TInnerClass.Create;

   y.innerProc;

end;   

 

 

Delphi2C# converts this to:

 

 

public class TOuterClass : TObject

{

  private int myField;

 

  public class TInnerClass : TObject

  {

    public int myInnerField;

    public void innerProc()

    {

 

  // ...

    }

 

    public TInnerClass() {}

  };  

  //# public void outerProc();

 

  public TOuterClass() {}

};

 

public class testClass

{

 

public static void foo()

{

  TOuterClass x = null;

  TOuterClass.TInnerClass y = null;

  x = new TOuterClass();

  x.outerProc();

   //...

  y = new TOuterClass.TInnerClass();

  y.innerProc();

}

 

} // testClass

 



This page belongs to the Delphi2C# Documentation

Delphi2C# home  Content