Изменение значений в процессе преобразований
Обновлен: Ноябрь 2007
При преобразовании типа значения копия исходного значения сохраняется по целевому адресу преобразования. Однако эта копия не является точным образом исходного значения. Целевой тип данных хранит значения по-разному; даже представленное значение может быть изменено в зависимости от выполняемого преобразования.
Изменения в ходе расширяющих и сужающих преобразований
Сужающие преобразования изменяют целевую копию исходного значения, однако при этом возможна потеря информации. Например дробные значения округляются при преобразовании в целый тип, а числовые типы при преобразовании в тип Boolean упрощаются до значений True или False.
Расширяющие преобразования сохраняют исходное значение, но могут изменить его представление. Это происходит при преобразовании из целого типа в Decimal или из Char в String.
Исходное значение в результате преобразования не меняется.
Изменения в процессе преобразования ссылочных типов
Преобразование ссылочных типов копирует только указатель на значение. Само значение никогда не копируется и не изменяется. Изменяется только тип данных переменной, содержащей указатель. В следующем примере тип данных преобразуется из производного класса в его базовый класс, но объект, на который указывают обе переменные, не изменяется.
' Assume class cSquare inherits from class cShape.
Dim shape As cShape
Dim square As cSquare = New cSquare
' The following statement performs a widening
' conversion from a derived class to its base class.
shape = square
См. также
Задачи
Практическое руководство. Преобразование объекта к другому типу в Visual Basic
Основные понятия
Расширяющие и сужающие преобразования
Явные и неявные преобразования
Преобразование значений между строковыми и другими типами
Программирование без типов в Visual Basic
Ссылки
Сводка типов данных (Visual Basic)