TSL语言基础 > Object TSL > 单元中的类

构造单元中的类实例    

  • 构造单元中的类实例与构造常规类实例方法类似,均可使用 CreateObject 或 new 实现。

    核心区别在于类标识符的指定方式:

    常规类实例:只需提供类名,如CreateObject("TStringList")或new TStringList()。
    单元中的类实例:需提供完整的类路径(格式:单元名.类名),如CreateObject("Unit1.Class1.Class2")或new Unit1.Class1.Class2()。

    具体语法如下:
    obj:=CreateObject("Unit1.Class1.Class2"[,P1,...,PN:any]);//CreateObject方式
    obj:=new Unit1.Class1.Class2([,P1,...,PN:any]);//new方式

    例如obj:= new Unit1.Class1.Class2(),表示创建单元 Unit1 中 Class1 内部定义的嵌套类 Class2的实例,并赋值给obj。

    注:2025-08-27后的NG客户端及使用新一代TSL的服务器支持该功能。

    示例
    定义于 Unit1 中的类结构
    Unit Unit1;
    Interface
    Type Class1=Class
      Type Class2=Class// 嵌套类
        function MethodInClass2();//方法
        class function ClassMethodInClass2();//类方法
      end;
    end;
    Initialization
    Finalization End.

    创建实例
    //方式一:CreateObject
    obj1:=CreateObject("Unit1.Class1.Class2");
    obj1.MethodInClass2();//调用方法
    //方式二:new关键字
    obj2:=new Unit1.Class1.Class2();
    obj2.MethodInClass2();//调用方法