ПОНЯТНО О Visual Basic NET


При объявлении нужно указывать тип


Попытаемся вернуть нашей программе способность вычислять периметр:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim a, b, S, p

        a = InputBox("Введите длину прямоугольника")

        b = InputBox("Введите ширину прямоугольника")

        S = a * b                           'Площадь

        p = a + a + b + b               'Периметр

        Debug.WriteLine(S)

        Debug.WriteLine(p)

    End Sub

Запустите проект. Введите длину 3 и ширину 2. Вы получите неожиданный результат:

6

3322

Площадь равна 6. Правильно. А вот периметр должен бы равняться 10, а не 3322. Откуда взялись эти 3322? Да ведь это не что иное, как две тройки и две двойки! И получились они из  a+a+b+b.

Здесь тот же случай, что и с калькулятором (см. 3.3). Там было то же самое, пока мы не применили Val. Почему так получается?

Первое: VB считает содержимое текстового поля в окне InputBox (точно так же, как и обычного текстового поля) текстом, а не числом, если даже оно состоит из цифр. А раз так, то и значения переменных a и b, взятые из текстового поля, он тоже считает текстом, а не числами. Не пей из копытца – козленочком станешь!

Второе: VB знает, что по правилам языка знак + имеет несколько смыслов в зависимости от того, к чему он применяется. В частности, при работе с числами это приказ складывать, а вот при работе с текстом это не приказ складывать, а приказ выстраивать в цепочку. А раз так, то и результат получился тот, что мы видели.

Почему же тогда площадь вычислилась нормально? Потому что там было не сложение, а умножение. VB знает, что по правилам языка знак умножения * не имеет смысла при работе с текстом. Значит (догадывается умный и услужливый VB) мой господин-человек не хочет, чтобы переменные  a и b  имели текстовое значение, иначе он не стал бы применять знак умножения, ведь мой хозяин умный. Значит иметь им числовое значение! Проверьте: подсуньте компьютеру вместо чисел буквы – VB  запротестует при вычислении площади.




Начало  Назад  Вперед



Книжный магазин