【发布时间】:2013-06-09 05:43:48
【问题描述】:
我有这样的代码:
TBase = class
end;
TClassA = class(TBase)
end;
TClassB = class(TBase)
end;
现在我需要一个带参数的过程,这个过程必须接受 TBase 对象和所有 TBase 子对象(TClassA 和 TClassB),我已经尝试过:
procedure MyProcedure(item: TBase);
但如果我尝试传递 TClassA 或 TClassB,则会收到错误消息:“E2010 不兼容的类型:'TBase' 和 'class of TClassA'”。
我不明白我的错误。 谢谢
注意:在发布之前我尝试找到类似的问题但没有成功,如果您知道请给我链接。
【问题讨论】:
-
"class of TClassA" 告诉我你还有一些我们看不到的代码。你能在你实际调用它的地方显示你的代码吗?
-
您发布的代码中没有“类转换”(或任何其他“转换”发生)。如果您在调用
MyProcedure时遇到问题,您应该发布调用MyProcedure的代码。 -
展示一个完整的程序并显示错误说明是微不足道的。我们本可以立即给您一个明确的答案。相反,您省略了最重要的代码行。为什么?为什么要让我们为难?展示一个完整的程序,长 15 行,说明问题。
-
您还没有编辑这个问题以包含我们需要看到的最关键的代码行才能帮助您。现在我别无选择,只能投反对票。
标签: delphi class types casting