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)