2

我正在使用德尔福 XE2。作为 Delphi 不支持对 Record 类型的前向引用的解决方法,我开始使用无类型参数。

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

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

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

4

1 回答 1

2

如何确保它AUntypedParam属于特定记录类型?

你不能。这几乎是无类型参数的作案手法。当您对编译器说,不要检查实际参数的类型时,编译器会按您说的做,让您传递任何您喜欢的东西。你不能同时拥有它。


@LURD 敏锐地指出,您可以使用记录助手来解决此编译器限制。我确实希望 Embarcadero 的某个人阅读有关 Stack Overflow 的问题。由于扩展记录的限制,这必须是过去一周中我们第三次或第四次遇到问题。

于 2013-10-14T14:54:35.197 回答