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


Практическое руководство. Оптимизация хранения положительных целых чисел с беззнаковыми типами (Visual Basic)

Если имеется переменная, содержащая только положительные значения (или 0), и эти значения никогда не превышают 4,294,967,295, то можно объявить переменную как UInteger вместо Long.

Преимуществом использования UInteger является 32-разрядное целое число типов Integer и UInteger, они являются наиболее эффективными типами данных в 32-разрядных платформах и обеспечивают оптимальное быстродействие приложения.

Переменную Integer можно использовать, если положительные значения никогда не превышают 2,147,483,647.

Чтобы объявить целое число с только положительными значениями

  • Объявите переменную As UInteger. Это показано в приведенном ниже примере.

    Public Function memoryRequired(ByVal m As UInteger) As UInteger
        Static r As UInteger = 0
        Try
            r += m
        Catch eo As System.OverflowException
            r = 0
        Catch ex As System.Exception
            MsgBox("Incrementing required memory causes """ & ex.Message & """")
        End Try
        Return r
    End Function
    

    Можно проверить функцию memoryRequired с помощью следующего кода:

    Public Sub consumeMemoryRequired()
        Dim m1 As UInteger = UInteger.MaxValue - 100
        Dim m2 As UInteger = 100
        MsgBox("Max = " & CStr(UInteger.MaxValue) & vbCrLf & 
            CStr(m1) & " -> " & CStr(memoryRequired(m1)) & vbCrLf & 
            "+ " & CStr(m2) & " -> " & CStr(memoryRequired(m2)) 
            & vbCrLf & "+ 1 -> " & CStr(memoryRequired(1)))
    End Sub
    

    Предупреждение

    Тип данных UInteger не является частью Спецификация CLS (CLS), поэтому в CLS-совместимом коде нельзя использовать компонент, который его использует.

См. также

Задачи

Практическое руководство. Вызов функции Windows, принимающей значение беззнакового типа (Visual Basic)

Ссылки

Сводка типов данных (Visual Basic)

Тип данных Integer (Visual Basic)

Тип данных UInteger