如何:使用无符号类型优化正整数的存储 (Visual Basic)

如果您的变量仅包含正值(或 0),并且这些值永远不会超过 4,294,967,295,则您可以将该变量声明为 UInteger 而不是 Long。

使用 UInteger 的优点是,32 位整型 Integer 和 UInteger 在 32 位平台上是最有效的数据类型,它们可以为您的应用程序提供优化的性能。

如果您的正值永远不会超过 2,147,483,647,您可以使用 Integer 变量。

声明仅包含正值的整数

  • 声明变量 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 的代码就不能使用该组件。

请参见

任务

如何:调用采用无符号类型的 Windows 函数 (Visual Basic)

参考

数据类型摘要 (Visual Basic)

Integer 数据类型 (Visual Basic)

UInteger 数据类型