17
|
Peter Turner · 技术社区 · 15 年前 |
![]() |
1
31
as-cast检查实际的对象类型以确保强制转换有效,否则会引发异常。“硬铸件”(
如果您遇到这样一种情况:classname返回true,但as-cast失败,这意味着您在两个不同的单元中有两个同名的不同类,而as-cast试图强制转换到错误的类。这也意味着你的硬石膏是铸造错误的一个,这可能会导致记忆腐败。 运行一个完整的项目搜索“tmyclass=”来查看您的多个声明在哪里,或者重命名其中一个类,或者使用一个完整的定义(obj作为myUnit.tmyclass),这样编译器就会知道您要强制转换到哪个类。 |
![]() |
2
5
梅森的职位: 除了搜索代码之外,您还可以在出现问题的位置调用类似于此方法的方法。
这将返回一个格式为(unitname)to对象.tppersistent.tcomponent…. 我不记得在旧版本的Delphi中看到了“classtype.unitname”,所以这个部分可能不适用于它们,但其他部分应该适用。 |