ПОНЯТНО О Visual Basic NET



              


Преобразование типов - часть 2


Пусть в предыдущем примере про 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




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