Darker
Вывалит ошибку ему сразу же, новичок глянет документацию или комменты к классам и всё сразу же поймёт.
Можно добавить константы и пользоваться ими:
Код:
Public Const TYPE_DOUBLE = "Double"
Public Const TYPE_INTEGER = "Integer"
Public Const TYPE_STRING = "String"
Но, на самом деле, это не нужно, т.к. в данном примере (и в большинстве подобных) значения для "типа" будут браться из конфигурационных документов, где невалидных значений просто не будет. А если будет -> генерация ошибки -> исправление -> забывание о данной ситуации чуть менее, чем навсегда.
turumbay
Я привёл пример на одном унифицирующем методе, а их может быть до десятка, а то и больше. Похоже Вы не прониклись идеей, а она была в том, чтобы уйти от Select Case'ов в каждом унифицирующем методе для большей скорости выполнения.
Тип переменной не всегда говорит о действительно нужном типе, - у меня в системе "1" может быть строкой, а, для случая экспорта в другую систему, там это может быть числом.
Относительно типизированная конструкция есть и сейчас, благодаря тому, что обращение к несуществующему тэгу списка будет генерировать ошибку 120, и при добавлении в метод getTypeObject обработчика ошибок ситуация прекрасно разрешается. Тут можно рассуждать о том, что отлов ошибок на этапе компиляции лучше, но есть случаи, когда можно этим пожертвовать ради скорости выполнения или удобства; о возникновении и исправлении возможной ошибки писал чуть выше.