Венгерская запись - ужасная ошибка на любом языке. Вы не должны использовать его в C ++. Назовите свои переменные, чтобы вы знали, для чего они. Не называйте их так, чтобы они дублировали информацию о типах, которую IDE может предоставить вам в любом случае и которая может измениться (и, как правило, не имеет значения в любом случае. Если вы знаете, что что-то является счетчиком, тогда не имеет значения, является ли это int16, 32 или 64. Вы знаете, что он действует как счетчик, и поэтому любая действующая на счетчике операция должна быть действительной. Тот же аргумент для координат X / Y. Они являются координатами. Не имеет значения, являются ли они плавающими или удваивается. Может быть уместно узнать, указано ли значение в единицах веса, расстояния или скорости. Неважно, что это число с плавающей точкой.).
На самом деле, венгерская нотация возникла лишь как недоразумение. Изобретатель намеревался использовать его для описания «концептуального» типа переменной (это координата, индекс, счетчик, окно?)
И люди, которые читали его описание, предполагали, что под "типом" он подразумевал фактический тип языка программирования (int, float, строка с нулем в конце, указатель на символ)
Это никогда не было намерением, и это ужасная идея. Он дублирует информацию, которую IDE может предоставить лучше, и которая не так уж важна в первую очередь, поскольку он побуждает вас программировать на самом низком уровне абстракции.
Так почему? Я единственный человек, который имеет
m_strExePath
или m_iNumber
в моем C #
код
Нет. К сожалению нет. Скажите, что было бы exePath
, если бы не было строкой? Почему я, читатель вашего кода, должен знать, что это строка? Разве недостаточно знать, что это путь к исполняемому файлу? m_iNumber
просто плохо назван. Какой номер это? Для чего это? Вы только что дважды сказали мне, что это число, но я до сих пор не знаю, что означает число.