Этот вопрос возникает из здесь. Я попробовал это утверждение в VS, чтобы узнать, что произойдет:
Len(Name <= 3)
В соответствии с этим ответом, а также этот, Boolean должен потреблять 4 байта. Согласно MSDN, Функция Len в VB
Возвращает целое число, содержащее либо количество символов в строка или номинальное количество байтов, необходимых для хранения переменной.
Name <= 3
должен преобразовать 3 в String и выполнить сравнение строк, возвращая логическое значение, поэтому Len
должно оценивать количество байтов в нем, которое должно быть 4. По какой-то причине выше код возвращает 2, независимо от того, второй параметр. Другими словами, Len(True)
также возвращает 2. Пробовал для разных целей платформы (32 и 64) - то же самое.
Почему Len(Boolean)
возвращает 2 вместо 4?