如何:使用无符号类型优化正整数的存储 (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)