You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi类方法中获取并返回ClassType类类型?

在Delphi类方法中返回类类型的方法

在Delphi的类方法里,Self关键字的含义和实例方法不同——它指向的是类本身的引用,而非实例对象。所以直接返回Self就能得到当前类的类型,具体实现如下:

基础实现(返回通用TClass类型)

class function TSomething.MyClass: TClass;
begin
  Result := Self;
end;

进阶实现(返回具体类引用类型)

如果需要返回更具体的类引用类型(而非通用的TClass),可以先定义对应的类引用类型,再做类型转换:

type
  // 定义TSomething的类引用类型
  TSomethingClass = class of TSomething;

class function TSomething.MyClass: TSomethingClass;
begin
  Result := TSomethingClass(Self);
end;

补充说明

  • 实例方法中的Self.ClassType本质也是获取实例所属类的引用,和类方法中直接使用Self的效果一致,只是调用场景不同。
  • 这种方式在Delphi各版本中都适用,包括早期的Delphi 7等版本。

内容的提问来源于stack exchange,提问作者Alister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:33:13