Cómo: Optimizar el almacenamiento de enteros positivos con tipos sin signo

Actualización: noviembre 2007

Si tiene una variable que contiene sólo valores positivos (o 0) y estos valores nunca superan 4.294.967,295, puede declarar la variable como UInteger en lugar de Long.

La ventaja de utilizar UInteger es que los tipos Integer y UInteger enteros de 32 bits son los tipos de datos más eficaces en plataformas de 32 bits, y proporcionan un rendimiento óptimo para su aplicación.

Puede utilizar una variable Integer si sus valores positivos nunca superan 2.147.483,647.

Para declarar un entero con sólo valores positivos

  • Declare la variable como As UInteger. Esto se ilustra en el siguiente ejemplo:

    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
    

    Puede probar la función memoryRequired con el código siguiente:

    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
    
    Precaución:

    El tipo de datos UInteger no forma parte de Common Language Specification (CLS), por lo que el código compatible con CLS no puede utilizar un componente que lo utiliza.

Vea también

Tareas

Cómo: Llamar a una función de Windows que adopta tipos sin signo

Referencia

Resumen de tipos de datos (Visual Basic)

Integer (Tipo de datos, Visual Basic)

UInteger (Tipo de datos)