Почему определенные параметры имеют префикс «A» в Delphi? - PullRequest
9 голосов
/ 23 декабря 2011

В стандарте кодирования Delphi, каково правило добавления префикса A перед именем параметра в функциях / процедурах?

Например:

constructor Create(AOwner: TComponent); override;
constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;
procedure AddAncestor(Component: TComponent); //No A prefix, why?

function FindClass(const ClassName: string): TPersistentClass; //No A prefix, why?
function GetClass(const AClassName: string): TPersistentClass;
procedure StartClassGroup(AClass: TPersistentClass);
procedure GroupDescendentsWith(AClass, AClassGroup: TPersistentClass);

Еще несколько примеров приведены в общих классах Delphi (см. Классы, Формы и т. Д.). Отсюда мой вопрос - каково правило, когда добавлять, а когда нет?

Ответы [ 2 ]

18 голосов
/ 23 декабря 2011

«А» для «Аргумент».Кроме того, «F» для «поля», «T» для «типа», «E» для «исключения», «I» для «интерфейса».

Не существует правила, когдадобавьте префикс «А», а когда нет.

7 голосов
/ 23 декабря 2011

Обычно это делается, когда происходит столкновение имен. Например, в конструкторе TComponent представьте, что было написано:

constructor TComponent.Create(Owner: TComponent)

Теперь параметр Owner скрывает свойство Owner экземпляра. Чтобы сослаться на недвижимость, вам нужно написать Self.Owner.

Вы, вероятно, обнаружите в источниках VCL, что префикс A используется, когда есть такое столкновение, и не используется, когда его нет. Но в применении этого соглашения будет непоследовательность.

Я скорее надеялся, что руководство по стилю Embarcadero Pascal скажет что-нибудь по этому вопросу, но, к сожалению, оно молчит.

Лично я никогда не использую префикс A в коде, который я пишу. По моему опыту, сокрытие всегда хорошо, потому что вы обычно ссылаетесь на параметр, а не на элемент экземпляра. Если вам когда-либо понадобится обратиться к члену экземпляра, то Self.Name может устранить неоднозначность.

Итак, нет никаких правил, просто соглашение, определяемое личными предпочтениями. Сделайте свой собственный выбор и придерживайтесь его. Согласованность гораздо важнее, чем если вы решите использовать такое соглашение об именах.

...