Condividi tramite


Procedura: ottimizzare l'archiviazione di valori integer positivi con tipi senza segno

Aggiornamento: novembre 2007

Se si utilizza una variabile contenente solo valori positivi (oppure 0) che non superano mai 4.294.967.295, è possibile dichiarare la variabile come UInteger anziché Long.

Il vantaggio dell'utilizzo di UInteger è che i tipi di dati integer a 32 bit Integer e UInteger sono i più efficienti sulle piattaforme a 32 bit e garantiscono prestazioni ottimali dell'applicazione.

È possibile utilizzare una variabile Integer se i valori positivi non superano mai 2.147.483.647.

Per dichiarare una variabile integer con valori solo positivi

  • Dichiarare la variabile As UInteger. Questa condizione è illustrata nell'esempio che segue.

    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
    

    È possibile verificare la funzione memoryRequired con il seguente codice:

    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
    
    Attenzione:

    Il tipo di dati UInteger non fa parte delle specifiche Specifiche CLS (Common Language Specification) (CLS), pertanto un codice compatibile con le specifiche CLS non può utilizzare un componente che utilizza tale tipo di dati.

Vedere anche

Attività

Procedura: chiamare una funzione Windows che accetta tipi senza segno

Riferimenti

Riepilogo dei tipi di dati (Visual Basic)

Tipo di dati Integer (Visual Basic)

Tipo di dati UInteger