加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

找出Delphi ClassType是否继承自其他ClassType?

发布时间:2020-12-15 09:47:11 所属栏目:大数据 来源:网络整理
导读:在Delphi中,给出以下内容: TFruit = class;TFruitClass = class of TFruit;TApple = class(TFruit);TRedApple = class(TApple); 如果我有一个TFruitClass变量,我如何才能知道它是否继承自TApple?例如.说我有 var FruitClass: TFruitClass;...FruitClass :=
在Delphi中,给出以下内容:

TFruit = class;
TFruitClass = class of TFruit;

TApple = class(TFruit);

TRedApple = class(TApple);

如果我有一个TFruitClass变量,我如何才能知道它是否继承自TApple?例如.说我有

var
  FruitClass: TFruitClass;
...
FruitClass := TRedApple;

在这种情况下,如何验证FruitClass是否确实从TApple继承?使用FruitClass是TApple仅适用于类实例.

解决方法

使用InheritsFrom:

if TApple.InheritsFrom(TFruit) then
  ...

你也可以使用

var
  Fr: TFruitClass;
  X: TObject;
begin
  if X.InheritsFrom(TFruit) then
    Fr := TFruitClass(X.ClassType);
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读