gpt4 book ai didi

delphi - InheritsFrom 和 is 运算符有什么区别?

转载 作者:行者123 更新时间:2023-12-03 14:45:38 25 4
gpt4 key购买 nike

在我记得的所有情况下,以下说明都会给出相同的结果:

type
TMyClass = class(TObject);
TMyChildClass = class(TMyClass);

var
MyObj : TMyChildClass;

procedure TForm1.Test();
var
ResultA : Boolean;
ResultB : Boolean;
begin
//Using TObject.InheritsFrom
ResultA := MyObj.InheritsFrom(TMyClass);

//Using 'is' operator
ResultB := MyObj is TMyClass;

//Showing results
ShowMessage(
'InheritsFrom = ' + BoolToStr(ResultA, True) + sLineBreak +
'is = ' + BoolToStr(ResultB, True)
);
end;

使用 is 运算符与 TObject.InheritsFrom 函数有什么区别吗?

最佳答案

是的,有区别。 InheritsFrom 是类函数,它的主要目的是测试类是否IS(从某个类继承)。

您不能在类上使用 is 运算符。

TMyChildClass is TMyClass 无法编译,但您可以使用 TMyChildClass.InheritsFrom(TMyClass) 代替。

关于delphi - InheritsFrom 和 is 运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42154306/

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