Я думаю, что второе является "надлежащим", но быть честным я не думаю, что это будет иметь значение. Компилятор должен быть достаточно умным для компиляции любого из тех к тому же самому байт-коду. Я использую "" меня.
Этот стиль кодирования специально вызывается в Руководстве по стилям Object Pascal , поскольку не является венгерской нотацией (за одним исключением, перечислимые типы .)
Конкретные соглашения о кодировании, о которых вы говорите, не имеют названия как такового, насколько мне известно, вы просто пишете код, соответствующий руководству по стилю кодирования CodeGear (старый Borland). . Руководство не
Я бы сказал, что ваше соглашение об именах на самом деле не соответствует венгерской нотации, но оно немного ближе к оригинальной венгерской нотации, изобретенной Чарльзом Симони, которая стала известна как Приложения венгерский
. Но не совсем.
На самом деле существует два типа венгерской нотации:
rwElement - variable represents a row ("rw") colElement - variable represents a columns ("col")
szName - variable is a zero-terminated string ("sz") lAccount - variable is a long integer ("l")
Таким образом, хотя ваше соглашение об именах в некотором смысле представляет собой некую цель, на самом деле это не так. цель, к которой относится Apps Hungarian.
Ваша схема может считаться некоторой формой венгерского обозначения (HN). Обычно HN используется для обозначения типа переменной, но, как отмечает Википедия,
нотация иногда расширяется в C ++ для включения области переменная, разделенная знаком подчеркивания. Это расширение также часто используется без венгерского спецификация типа: [..]
В целом это звучит как венгерская нотация, но здесь не указаны соглашения A, F или M, в частности, только добавление информации о типе к имени.
Ваш относится к общему классу соглашений об именах, известному как венгерская нотация (в возможно более широком, чем обычно, смысле что у имени есть префикс, описывающий переменную), но нет, в вашем соглашении нет более конкретного имени.
Я никогда раньше не видел вашего конкретного выбора префиксов. Самое близкое, что я видел, это то, что я называю соглашением Indy , который использует A для аргументов, F для полей, G для глобальных объектов, L для локальных и, конечно же, обычный I для интерфейсов и T для записей и классов. Свойства и подпрограммы не имеют префикса.