Поделиться через


Целочисленный тип данных (Visual Basic)

Содержит 32-разрядные (4-байтовые) целые числа со знаком в диапазоне от -2 147 483 648 до 2 147 483 647.

Замечания

Тип данных Integer обеспечивает оптимальную производительность на 32-разрядных процессорах. Другие целочисленные типы загружаются в память и сохраняются в памяти с более низкой скоростью.

Значение по умолчанию для типа Integer — 0.

Литеральные назначения

Можно объявить и инициализировать Integer переменную, назначив ему десятичный литерал, шестнадцатеричный литерал, восьмеричный литерал или (начиная с Visual Basic 2017) двоичный литерал. Если целочисленный литерал выходит за пределы диапазона Integer (то есть, если он меньше Int32.MinValue или больше Int32.MaxValue), возникает ошибка компиляции.

В следующем примере целые числа, равные 90 946 и представленные в виде десятичного, шестнадцатеричного и двоичного литерала, назначаются значениям Integer.

Dim intValue1 As Integer = 90946
Console.WriteLine(intValue1)
Dim intValue2 As Integer = &H16342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

Примечание.

Вы используете префикс или обозначает шестнадцатеричный литерал, префикс &h или &H &B для обозначения двоичного литерала, а также префикса &b &o или &O для обозначения восьмеричного литерала. У десятичных литералов префиксов нет.

Начиная с Visual Basic 2017, вы также можете использовать символ подчеркивания, _как разделитель цифр для повышения удобочитаемости, как показано в следующем примере.

Dim intValue1 As Integer = 90_946
Console.WriteLine(intValue1)

Dim intValue2 As Integer = &H0001_6342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

Начиная с Visual Basic 15.5, можно также использовать символ подчеркивания (_) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Например:

Dim number As Integer = &H_C305_F860

Чтобы использовать символ подчеркивания в качестве ведущего разделителя, необходимо добавить следующий элемент в файл проекта Visual Basic (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Дополнительные сведения см. в разделе "Выбор версии языка Visual Basic".

Числовые литералы также могут включать I символ типа для обозначения Integer типа данных, как показано в следующем примере.

Dim number = &H_035826I

Советы по программированию

  • Вопросы взаимодействия. Если вы работаете с компонентами, не написанными для платформа .NET Framework, таких как автоматизация или COM-объекты, помните, что Integer в других средах используется другая ширина данных (16 битов). При передаче 16-разрядного аргумента такому компоненту в новом коде Visual Basic следует объявить его как Short, а не как Integer.

  • Расширение. Тип данных Integer можно расширить до Long, Decimal, Single или Double. Это означает, что тип Integer можно преобразовать в любой из этих типов без возникновения ошибки System.OverflowException.

  • Тип символов. При добавлении к литералу символа типа литерала I производится принудительное приведение литерала к типу данных Integer. При добавлении символа идентификатора типа % к любому идентификатору производится принудительное приведение этого идентификатора к типу Integer.

  • Тип платформы. В .NET Framework данный тип соответствует структуре System.Int32.

Диапазон

При попытке присвоить целочисленной переменной значение, лежащее за пределами диапазона данного типа, возникает ошибка. При попытке задать дробное значение оно округляется вверх или вниз до ближайшего целого значения. Если число находится точно посередине между двумя целыми числами, значение округляется до ближайшего четного целого. Такое поведение минимизирует ошибки округления, происходящие от постоянного округления среднего значения в одном направлении. В следующем коде приведены примеры округления.

' The valid range of an Integer variable is -2147483648 through +2147483647.  
Dim k As Integer  
' The following statement causes an error because the value is too large.  
k = 2147483648  
' The following statement sets k to 6.  
k = 5.9  
' The following statement sets k to 4  
k = 4.5  
' The following statement sets k to 6  
' Note, Visual Basic uses banker’s rounding (toward nearest even number)  
k = 5.5  

См. также