2009-07-13 96 views
0

它可以创建一个类型idenitifier例如:是否可以在Delphi中创建一个类型方法?

type PByte = ^Byte; 

是否有可能做到以下几点:

function a:shortint; 
begin 
    Exit(8); 
end; 

type b = a; 

所以你可以称之为 “B” 和 “A”。可能吗?

我问,因为我想,以取代“退出”与“回报”这样我就可以把这个:

return(5);// for example 
+3

退出是编译器的关键字。你为什么要改变它返回? – 2009-07-13 10:44:03

+1

托比亚斯,反过来经常发生在新的C程序员身上。他们试图编写一个宏库,使C看起来像他们以前的语言,比如将`begin`定义为开头大括号。 John询问的问题表明他也在学习C#,所以他可能试图让它们看起来更加相似。 – 2009-07-13 14:40:16

回答

7

在我看来,你是在混淆功能类型和定义。您可以为方法和函数创建类型,并且可以在Delphi中每天使用它们,例如TNotifyEvent,这是在大多数使用用户控件的操作上调用的方法类型。这种类型允许你定义与某个头部相对应的函数(即期望的参数和返回值)。

一个完全不同的问题是函数指针 - 指向特定函数实例的指针,以便您可以“调用”指针并调用该函数。指针可以是某种类型的函数(如上所述),但这两个问题几乎没有任何关系。

第三个完全不相关的东西是函数的调用堆栈。如Tobias所述,Exit是一个保留的编译器指令,而不是一个函数本身。

总之,出于所有的实际目的,你想达到的目标是不正确的,而且是不可能的。你可能会“欺骗”Delphi接受类似的东西,但这只是错误的恕我直言。

1

您应该至少使用德尔福2009年。有新的退出(结果)构造。

如果您喜欢坚持使用旧的Delphi版本,您应该检查this。 Exit(Result)没有现成的功能,但使用插件很容易实现。

相关问题