gpt4 book ai didi

对象的delphi类型信息

转载 作者:行者123 更新时间:2023-12-03 19:42:04 25 4
gpt4 key购买 nike

我有如下代码

 TLivingThing=class
end;

THuman=class(TLivingThing)
public
Language:String
end;

TAnimal=class(TLivingThing)
public
LegsCount:integer;
end;


procedure GetLivingThing()
var
livingThing:TLivingThing;
begin
livingThing:=THuman.Create();
if livingThing=TypeInfo(THuman) then ShowMessage('human');

livingThing:=TAnimal.Create();
if livingThing=TypeInfo(TAnimal) then ShowMessage('animal');
end;
  • 如何检查上面代码的对象类型?我尝试了 typeInfo 但消息从未执行
  • 如何访问子类公共(public)字段?像这样?

  • TAnimal(livingThing).LegsCount=3;



    它的类型安全时尚?或者有什么更好的方法来完成这个案例?

    谢谢你的建议

    最佳答案

    试试这个:

    procedure GetLivingThing();
    var
    livingThing:TLivingThing;
    human:THuman;
    animal:TAnimal;
    begin
    livingThing:=THuman.Create();
    try

    if livingThing is THuman then
    begin
    human:=livingThing as THuman;
    ShowMessage('human');
    end;

    if livingThing is TAnimal then
    begin
    animal:=livingThing as TAnimal;
    ShowMessage('animal');
    end;

    finally
    livingThing.Free;
    end;
    end;

    关于对象的delphi类型信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439712/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com