2013-10-14 58 views
2

我正在使用Delphi XE2。 作为一种解决方案,Delphi不支持对记录类型的前向引用,我开始使用无类型参数。德尔福 - >从无类型参数获得记录类型

如何获取无类型参数的类型?

procedure TSomeRecord.TransformBy(const AUntypedParam); 
begin 
// how can I ensure that **AUntypedParam** is of a specific record type? 

我需要确保AUntypedParam是一个特定的类型,否则应抛出异常。 谢谢!

+0

在您的记录中添加签名。 –

+0

顺便说一下,应该可以规避无法使用记录助手来声明前向记录引用。 –

+0

是的,记录助手是我解决这个问题的方法。 –

回答

2

如何确保AUntypedParam是特定记录类型?

你不行。这几乎是无类型参数的工作方式。当你对编译器说,不要检查实际参数的类型,编译器会根据你的意思让你传递任何你喜欢的东西。你不能两面都有。


@LURD明确指出,您可以使用记录助手来解决此编译器限制。我确实希望来自Embarcadero的人阅读Stack Overflow的问题。由于扩展记录的限制,这一定是过去一周的第三次或第四次,因为我们有问题。