ПОНЯТНО О Visual Basic NET


         

мы не хотим менять


Пусть в предыдущем примере про 200+ 100 мы не хотим менять тип переменных Byte на более вместительный Short. Как же тогда избавиться от переполнения? Применить CShort – функцию преобразования своего аргумента в тип Short. Вот так:

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

        Dim a As Byte = 200

        Dim b As Byte = 100

        Debug.WriteLine(a - b)

        Debug.WriteLine(CShort(a) + CShort(b))

    End Sub

Здесь функция CShort преобразует перед сложением значения переменных a и b из типа Byte в тип Short. Не переменные, а их значения, и не везде, а только в данном месте. Сами переменные как были, так и остались типа Byte, и их значения в других местах программы (там, где вычитание) тоже остались типа Byte.

Преобразование состоялось и сложение поэтому выполнялось над числами типа Short и результат (300) обязан был умещаться именно в этот тип, куда он свободно и уместился.

Вот таблица функций преобразования типов, куда я для справки включил и функции преобразования в нечисловые типы:













































































































Функция



Преобразует в тип



CByte



Byte



CShort



Short



CInt



Integer



CLng



Long



CSng



Single



CDbl



Double



CDec



Decimal



CChar 



Char



CStr



String



CBool



Boolean



CDate



Date



CObj 



Object



Неявное преобразование типов. При выполнении арифметических действий (и в других случаях) VB часто незаметно для нас и сам преобразовывает числа из одного типа в другой. Например, вычисляя выражение   5+2.8,   VB преобразует число 5 из типа Integer в тип Double, после чего складывает числа и получает результат 7.8 типа Double.

Вообще,

выполняя арифметические действия над числами разных типов, VB преобразует их к единому типу, который вмещал бы типы обоих чисел, после чего присматривает, чтобы результат тоже умещался в этом типе.

Вот список числовых типов в порядке возрастания вместительности:

Byte, Short, Integer, Long, Single, Double, Decimal


Содержание  Назад  Вперед