Comment : optimiser le stockage d'entiers positifs avec les types non signés
Mise à jour : novembre 2007
Si vous avez une variable qui contient uniquement des valeurs positives (ou 0) et que ces valeurs ne dépassent jamais 4 294 967 295, vous pouvez déclarer la variable en tant que UInteger plutôt que Long.
L'avantage de UInteger est que les types entiers de 32 bits Integer et UInteger sont les types de données les plus efficaces sur les plateformes 32 bits et qu'ils fournissent les performances optimales pour votre application.
Vous pouvez utiliser une variable Integer si vos valeurs positives ne dépassent jamais 2 147 483 647.
Pour déclarer un entier avec uniquement des valeurs positives
Déclarez la variable As UInteger. L'exemple suivant illustre ce comportement :
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
Vous pouvez tester la fonction memoryRequired à l'aide du code suivant :
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
Attention : Le type de données UInteger ne faisant pas partie de Spécification CLS (Common Language Specification), le code conforme CLS ne peut pas consommer un composant qui l'utilise.
Voir aussi
Tâches
Comment : appeler une fonction Windows qui possède des types non signés
Référence
Liste des types de données (Visual Basic)