我正在将大量类从 Integer 迁移到 Int64,而我的 32 位应用程序中都是 32 位。
如果我将一个 32 位整数传递给一个类型参数明确定义为 Int64 的过程,但由于 Int32 与 Int64 兼容,因此我希望编译器抛出异常,而不会显示任何错误。
我想这样做是为了确保我不会错过任何参考。
我正在将大量类从 Integer 迁移到 Int64,而我的 32 位应用程序中都是 32 位。
如果我将一个 32 位整数传递给一个类型参数明确定义为 Int64 的过程,但由于 Int32 与 Int64 兼容,因此我希望编译器抛出异常,而不会显示任何错误。
我想这样做是为了确保我不会错过任何参考。
您可以通过使用方法重载来获取所需的信息,这将确保 Delphi 执行输入参数类型与传递的参数类型匹配的重载方法。
然后,对于输入参数与所需输入参数不匹配的任何重载方法,您可以将此类方法标记为已弃用。这将在调用此类重载方法的任何地方创建W1000 符号“%s”已弃用(Delphi) 。
现在,这种方法的注意事项是,您可能需要创建 8 个方法的重载版本,以覆盖四种有符号整数类型(Int8、Int16、Int32 和 Int64)以及四种无符号整数类型(UInt8、UInt16、UInt32、UInt64);
下面是四个重载方法检测 4 种有符号整数类型的一个小例子:
请注意,最后一次测试调用时,NativeInt 的返回值取决于您的应用程序是否按预期针对 32 位或 64 位架构进行编译。