Можно ли создать метод типа в Delphi? - PullRequest
0 голосов
/ 13 июля 2009

Можно создать идентификатор типа, например:

type PByte = ^Byte;

Можно ли сделать следующее:

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

type b = a;

так что вы можете называть "b" и "a". Возможно ли это?

Я спрашиваю, потому что я хотел бы заменить «Выход» на «возврат», чтобы я мог назвать это:

return(5);// for example

Ответы [ 2 ]

7 голосов
/ 13 июля 2009

Мне кажется, вы путаете типы функций и определения. Вы можете создать тип для методов и функций и использовать их каждый день в Delphi, например TNotifyEvent, который является типом методов, который вызывается в большинстве операций с пользовательскими элементами управления. Такие типы позволяют вам определять функции, соответствующие определенному заголовку (то есть ожидаемые параметры и возвращаемое значение).

Совершенно другая проблема - указатели на функции - указатель на конкретный экземпляр функции, так что вы можете «вызвать» указатель, и он вызовет функцию. Указатель может быть функцией определенного типа (как описано выше), но эти две проблемы практически не имеют ничего общего друг с другом.

Третья совершенно не связанная вещь - стек вызовов функций. Выход, как упоминал Тобиас, является зарезервированной директивой компилятора, а не функцией как таковой.

В заключение, для всех практических целей то, что вы хотите достичь, не правильно и невозможно. Возможно, вы сможете «обмануть» Delphi, приняв что-то подобное, но это будет просто неверно, ИМХО.

1 голос
/ 13 июля 2009

Вы должны использовать хотя бы Delphi 2009. Появилась новая конструкция Exit (Result).

Если вы предпочитаете придерживаться старой версии Delphi, вам следует проверить this . У Exit (Result) нет готовых функций, но это очень легко реализовать с помощью плагинов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...