Como: Otimizar o armazenamento de números inteiros positivo com tipos não assinados

Se você tiver uma variável que contenha somente valores positivos (ou 0), e esses valores nunca ultrapassam 4,294,967,295, você pode declarar a variável como UInteger no lugar de Long.

A vantagem de utilizar UInteger é que os tipos inteiro de dado de 32-bits Integer e UInteger são os tipos de dado mais eficientes em plataformas de 32-bits, e possibilitam desempenho ótimo para sua aplicação.

Você pode usar uma variável Integer se seus valores positivos não ultrapassam 2,147,483,647.

Para declarar um inteiro somente como valores positivos

  • Declare a variável As UInteger.O exemplo a seguir ilustra isto:

    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
    

    Você pode testar a função memoryRequired com o seguinte código:

    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
    
    Cuidado:

    O UInteger tipo de dados não é parte do CLS (Common Language Specification) (CLS), para que o código compatível com CLS não pode consumir um componente que o utiliza.

Consulte também

Tarefas

Como: Chamar uma função do Windows que leva os tipos não assinados

Referência

Resumo de tipo de dados (Visual Basic)

Tipo de Dados Inteiro (Visual Basic)

Tipo de dados UInteger