Во всех случаях я помню, следующие инструкции дают тот же результат:В чем разница между InheritsFrom и оператором is?
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
функции?
Несмотря на небольшую разницу между ними, мы не должны игнорировать тот факт, что у них есть сходства. – Fero
В этом смысле я имею в виду, что в некоторых сценариях они могут достичь одинаковых результатов! – Fero