传递序数参数

Jam*_*ass 4 delphi parameters types delphi-2007 ordinal

是否可以编写一个以任何序数类型作为参数的方法?Inc()或High()的作用方式相同吗?

我正在使用Delphi 2007

Dav*_*nan 6

您需要使用无类型参数:

procedure Foo(const ordinal);
Run Code Online (Sandbox Code Playgroud)

要么

procedure Foo(var ordinal);
Run Code Online (Sandbox Code Playgroud)

当然,由于您已经放弃了类型系统,因此您在这样的例程中可以做的事情有些受限.

  • 那么,现在你可以将*任何*传递给这些程序,而不仅仅是序数.所以这不是`inc`等的工作方式.(事实上​​,代码洞察力说`inc`的论点是`var X:ordinal`.但是这种行为你不能得到你自己的proc/func,我想.) (3认同)
  • +1,你也可以传递字节数,如程序Foo(var AOrdinal; Size:Integer); 并称之为Foo(MyOrdinal,SizeOf(MyOrdinal)).这样你的例行程序就可以处理不同大小的序数.如果你想要的那种黑客...但非常快捷方便. (2认同)