Como: otimizar o armazenamento de inteiros positivos com tipos sem-sinal (Visual Basic)

If you have a variable that contains only positive values (or 0), and these values never exceed 4,294,967,295, you can declare the variable as UInteger instead of Long.

The advantage of using UInteger is that the 32-bit integer types Integer and UInteger are the most efficient data types on 32-bit platforms, and they provide optimum performance for your application.

You can use an Integer variable if your positive values never exceed 2,147,483,647.

To declare an integer with only positive values

  • Declare the variable As UInteger. The following example illustrates this.

    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
    

    You can test the function memoryRequired with the following code:

    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
    

    Aviso

    The UInteger data type is not part of the CLS (Common Language Specification) (CLS), so CLS-compliant code cannot consume a component that uses it.

Consulte também

Tarefas

Como: Chamar uma função do Windows que obtém tipos sem-sinal (Visual Basic)

Referência

Resumo de tipo de dados (Visual Basic)

Tipo de Dados Inteiro (Visual Basic)

Tipo de dados UInteger