ПОНЯТНО О Visual Basic NET (том 2)


     чернослив оптом | Приватный чит для cs go купить на сайте freeqn.net. |       

Соответствие типов


Мы с вами уже привыкли, что сочиняя программу, нужно немножко заботиться о соответствии типов. Соответствие типов должно выполняться не только для параметров методов, но и в операторе присваивания, где тип выражения справа от знака равенства должен соответствовать типу переменной слева от него. Поэтому, например, следующий фрагмент VB выполнит гладко и без малейших вопросов:
        Dim a As Integer
        Dim b As Integer = 99
        a = b + 2
А вот при попытке выполнить следующий фрагмент
        Dim a As Integer
        Dim s As String = "Привет"
        a = s
VB выдаст ошибку:
Cast from string "Привет" to type 'Integer' is not valid.
Переводится сообщение так:
«Преобразование строки "Привет"  в тип  Integer  незаконно».
Действительно, в какое число можно превратить строчку текста? Нонсенс.
А зачем VB вообще что-то преобразовывал? А затем, что есть такое правило выполнения оператора присваивания:
Вычислив в операторе присваивания выражение справа от знака равенства, VB смотрит, совпадает ли его тип с типом переменной слева от него. Если совпадает – хорошо, а если не совпадает, то пытается преобразовать его тип к нужному (тому, что слева). Если удается – хорошо, а если из соображений правильности, точности, безопасности или из каких-то других своих соображений VB посчитает, что такое преобразование незаконно или ненужно, он выдает сообщение об ошибке.
Рассмотрим фрагмент:
        Dim a As Integer
        Dim b As Double = 1
        a = b + 0.48
Он будет выполнен гладко, несмотря на то, что справа – Double, а слева –  Integer. VB не возражает в данном случае преобразовать дробное число в целое. Несмотря на колоссальную потерю в точности (1 вместо 1.48), никаких сообщений или предупреждений мы не увидим. Это программист сам виноват, что объявил переменную целым типом.
Так же гладко выполнится и следующий фрагмент:
        Dim a As Integer = 99
        Dim s As String
        s = a
Здесь VB преобразует число 99 в строку “99”.
Соответствие типов требуется и при вызове процедур и функций с параметрами.
При обращении к процедуре VB смотрит, совпадает ли тип параметра в обращении к процедуре с типом соответствующего параметра в заголовке объявления процедуры. Если совпадает – хорошо, а если не совпадает, то пытается преобразовать его тип к нужному (тому, что в объявлении). Если удается – хорошо, а если нет, VB выдает сообщение об ошибке.
В подтверждение этих слов достаточно вспомнить Методы, «придирчивые» к типу параметров (6.2.8).
Чтобы не было проблем, старайтесь объявлять переменные и параметры, между которыми должно соблюдаться соответствие, одинаковыми типами.

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





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий