Если у вас есть строка, такая как
Dim age As Int16 = Txt_CharAge.Text
, вы говорите компьютеру ввести строку в число. Без Option Strict On можно свободно создавать любые способы вставки строки (которая не является Int16) в Int16. Вы отказались от контроля над тем, что происходит в этой точке.
Лучший способ - рассказать, как преобразовать символы текста в число. (См. Предательство образов для объяснения, что представление некоторой вещи не является той вещью.)
Существует готовый набор методов с именем TryParse
для многих из встроенные типы.
Итак, вместо
Dim age As Int16 = Txt_CharAge.Text
вы должны иметь
Dim age As Integer
Integer.TryParse(Txt_CharAge.Text, age)
Методы TryParse
на самом деле являются функциями, которые возвращают True
, если анализ был успешным, в противном случае они возвращают False
(и устанавливают для переменной значение по умолчанию), но в этом случае кажется, что вам не нужно знать, был ли анализ успешным, потому что значение по умолчанию 0 для целого числа будет Достаточно.
Обратите внимание, что на самом деле нет необходимости использовать Int16 вместо Integer, если вы не знаете, почему вам нужно добавить сложность использования Int16 вместо Integer.