我有两个接口,其中一个派生自另一个:
type
ISomeInterface = interface
['{5A46CC3C-353A-495A-BA89-48646C4E5A75}']
end;
ISomeInterfaceChild = interface(ISomeInterface)
['{F64B7E32-B182-4C70-A5B5-72BAA92AAADE}']
end;
现在我有一个过程,其中参数是ISomeInterface,如下:
procedure DoSomething(SomeInterface: ISomeInterface);
我想检查SomeInterface是否是ISomeInterfaceChild。在Delphi 7中,界面不支持Is
运算符,并且我也不能在这里使用Supports
。我该怎么办?
ISomeInterfaceChild
,那么您正在使用错误的重载。您应该使用我在答案中演示的两个参数的重载。 - David HeffernanISomeInterfaceChild
,那么你也需要将其作为ISomeInterfaceChild
来使用。否则这个检查就没有意义,它不应该有影响,因此检查它可能会暴露出设计问题。 - ain