我正在使用Delphi XE2。 作为Delphi不支持对Record类型的前向引用的一种解决方法,我开始使用无类型参数。
如何获取无类型参数的类型?
procedure TSomeRecord.TransformBy(const AUntypedParam);
begin
// how can I ensure that **AUntypedParam** is of a specific record type?
我需要确保AUntypedParam属于特定类型,否则应抛出异常。 谢谢!
答案 0 :(得分:2)
如何确保
AUntypedParam
属于特定记录类型?
你做不到。这几乎是无类型参数的运作方式。当您对编译器说,不要检查实际参数的类型时,编译器会引导您完成您的任务,并允许您传递任何您喜欢的内容。你无法双管齐下。
@LURD敏锐地指出,您可以使用记录助手来解决此编译器限制。我希望Embarcadero的某些人能够阅读Stack Overflow上的问题。由于扩展记录的限制,这必须是过去一周内第三次或第四次我们提出问题。