Delphi在类过程中使用反射来获取动态类类型

Delphi在类过程中使用反射来获取动态类类型,delphi,reflection,rtti,Delphi,Reflection,Rtti,我希望在类过程/函数(静态方法)中对当前类使用反射。如果不使用“Self”关键字,我怎么办?如果没有harcode,类名:此过程应在子体中重写 class procedure AAA.SetTableAndSequence; var c : TRttiContext; t : TRttiType; begin c := TRttiContext.Create; try t := c.GetType(Self.ClassType); ... finally c.F

我希望在类过程/函数(静态方法)中对当前类使用反射。如果不使用“Self”关键字,我怎么办?如果没有harcode,类名:此过程应在子体中重写

class procedure AAA.SetTableAndSequence;
var
c : TRttiContext;
t : TRttiType;
begin
  c := TRttiContext.Create;
  try
    t := c.GetType(Self.ClassType);
    ...
  finally
   c.Free;
  end;
end;
您可以使用和:


FWIW,这里的try/finally没有意义
TRttiContext
不是一个类。直接使用
c
。它会自动初始化。
ClassInfo
返回的值到底是多少?
TypeInfo
返回的内容是否相同?哦,谢谢你指出我现在删除的答案是假的。是的,VMT包含一个类的TypeInfo字段(
vmtTypeInfo
slot),该字段由
ClassInfo
类函数返回。
class procedure AAA.SetTableAndSequence;
var
  c: TRttiContext;
  t: TRttiType;
begin
  t := c.GetType(ClassInfo);
  ...
end;