Иллюстрированный самоучитель по VB.NET

         

Математические операторы


В табл. 3.7 приведены условные обозначения шести базовых математических операций.

Результат стандартного деления (/) всегда относится к типу Double, даже в случае де-ления без остатка. Результат целочисленного деления (\) всегда относится к типу Integer. Это означает, что при работе с типами Decimal и Integer вам придется часто использовать функции преобразования.

Таблица 3.7. Математические операции

Чтобы лучше разобраться в разных типах деления, можно воспользоваться методом .NET GetType. В командах вывода (таких как WriteLine) этот метод возвращает имя типа в строковом представлении. Рассмотрим следующую программу:

Module Modulel

Sub Main()

Console.WriteLine((4 / 2).GetType())

Console. ReadLine()

End Sub

End Module

В консольном окне выводится строка

System.Double

Возможности метода GetType не ограничиваются простым выводом имени — в частности, он используется в процессе рефлексии. Механизм рефлексии описан в главе 4.

Ниже приведен пример ситуации, в которой необходимо учитывать тип значения, возвращаемого оператором деления. Перед нами простая (но нерабочая) версия программы, преобразующей температуру по Цельсию в температуру по Фаренгейту. В выделенной строке отсутствует суффикс @, преобразующий результат деления к типу Decimal:

Option Strict On

Module Modulel Sub Main()

Dim cdeg As Decimal

Console.. Writer Enter the degrees in centigrade...")

cdeg=CDec(Console.ReadLine())

Dim fdeg As Decimal

fdeg = (((9 / 5) * cdeg) + 32)

Console.WriteLine(cdeg & " is " & fdeg & " degrees Fahrenheit.")

Console. ReadLine()

End Sub

End Module

Из-за присутствия знака / в выделенной строке переменной fdeg присваивается результат типа Double. В режиме жесткой проверки типов это приводит к тому, что на стадии компиляции будет выдано следующее сообщение об ошибке:

Option Strict disallows implicit conversions from Double to Decimal.

Как исправить ошибку? Только не надо убирать команду Option Strict — это одно из лучших новшеств VB .NET, которое избавляет вас от злостного искажения типов.

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







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