Istruzione Dim (Visual Basic)Dim Statement (Visual Basic)

Dichiara e alloca lo spazio di archiviazione per una o più variabili.Declares and allocates storage space for one or more variables.

SintassiSyntax

[ <attributelist> ] [ accessmodifier ] [[ Shared ] [ Shadows ] | [ Static ]] [ ReadOnly ]
Dim [ WithEvents ] variablelist

PartiParts

Facoltativa.Optional. Specifica che si tratta di variabili oggetto che fanno riferimento a istanze di una classe in grado di generare eventi.Specifies that these are object variables that refer to instances of a class that can raise events. Vedere WithEvents.See WithEvents.

  • variablelist

    Obbligatoria.Required. Elenco delle variabili dichiarate in questa istruzione.List of variables being declared in this statement.

    variable [ , variable ... ]

    Ogni variable presenta la sintassi e le parti seguenti:Each variable has the following syntax and parts:

    variablename [ ( [ boundslist ] ) ] [ As [ New ] datatype [ With{[ .propertyname = propinitializer [ , ... ] ] } ] ] [ = initializer ]variablename [ ( [ boundslist ] ) ] [ As [ New ] datatype [ With{[ .propertyname = propinitializer [ , ... ] ] } ] ] [ = initializer ]

    PartePart DescrizioneDescription
    variablename Obbligatoria.Required. Nome della variabile.Name of the variable. Vedere Declared Element Names.See Declared Element Names.
    boundslist Facoltativa.Optional. Elenco di limiti di ogni dimensione di una variabile di matrice.List of bounds of each dimension of an array variable.
    New Facoltativa.Optional. Crea una nuova istanza della classe quando viene eseguita l'istruzione Dim.Creates a new instance of the class when the Dim statement runs.
    datatype Facoltativa.Optional. Tipo di dati della variabile.Data type of the variable.
    With Facoltativa.Optional. Introduce l'elenco di inizializzatori di oggetto.Introduces the object initializer list.
    propertyname Facoltativa.Optional. Nome di una proprietà nella classe di cui si sta creando un'istanza.The name of a property in the class you are making an instance of.
    propinitializer Obbligatorio dopo propertyname =.Required after propertyname =. Espressione valutata e assegnata al nome della proprietà.The expression that is evaluated and assigned to the property name.
    initializer Facoltativo se New non è specificato.Optional if New is not specified. Espressione valutata e assegnata alla variabile al momento della creazione.Expression that is evaluated and assigned to the variable when it is created.

OsservazioniRemarks

Il compilatore Visual Basic utilizza l'istruzione Dim per determinare il tipo di dati della variabile e altre informazioni, ad esempio il codice che può accedere alla variabile.The Visual Basic compiler uses the Dim statement to determine the variable's data type and other information, such as what code can access the variable. Nell'esempio seguente viene dichiarata una variabile per includere un valore Integer.The following example declares a variable to hold an Integer value.

Dim numberOfStudents As Integer

È possibile specificare qualsiasi tipo di dati o il nome di un'enumerazione, una struttura, una classe o un'interfaccia.You can specify any data type or the name of an enumeration, structure, class, or interface.

Dim finished As Boolean
Dim monitorBox As System.Windows.Forms.Form

Per un tipo riferimento, usare la parola chiave New per creare una nuova istanza della classe o della struttura specificata dal tipo di dati.For a reference type, you use the New keyword to create a new instance of the class or structure that is specified by the data type. Se si utilizza New, non viene utilizzata un'espressione di inizializzazione.If you use New, you do not use an initializer expression. Vengono invece forniti gli argomenti, se necessari, al costruttore della classe da cui si crea la variabile.Instead, you supply arguments, if they are required, to the constructor of the class from which you are creating the variable.

Dim bottomLabel As New System.Windows.Forms.Label

È possibile dichiarare una variabile in una routine, un blocco, una classe, una struttura o un modulo.You can declare a variable in a procedure, block, class, structure, or module. Non è possibile dichiarare una variabile in un file di origine, uno spazio dei nomi o un'interfaccia.You cannot declare a variable in a source file, namespace, or interface. Per altre informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefiniti.For more information, see Declaration Contexts and Default Access Levels.

Una variabile dichiarata a livello di modulo, all'esterno di qualsiasi routine, è una variabile membro o un campo.A variable that is declared at module level, outside any procedure, is a member variable or field. Le variabili membro sono nell'ambito della classe, della struttura o del modulo.Member variables are in scope throughout their class, structure, or module. Una variabile dichiarata a livello di routine è una variabile locale.A variable that is declared at procedure level is a local variable. Le variabili locali si trovano nell'ambito solo all'interno della routine o del blocco.Local variables are in scope only within their procedure or block.

I modificatori di accesso seguenti vengono utilizzati per dichiarare le variabili all'esterno di una routine: Public, Protected, Friend, Protected Friende Private.The following access modifiers are used to declare variables outside a procedure: Public, Protected, Friend, Protected Friend, and Private. Per altre informazioni, vedere livelli di accesso in Visual Basic.For more information, see Access levels in Visual Basic.

La parola chiave Dim è facoltativa e in genere omessa se si specifica uno dei modificatori seguenti: Public, Protected, Friend, Protected Friend, Private, Shared, Shadows, Static, ReadOnlyo WithEvents.The Dim keyword is optional and usually omitted if you specify any of the following modifiers: Public, Protected, Friend, Protected Friend, Private, Shared, Shadows, Static, ReadOnly, or WithEvents.

Public maximumAllowed As Double
Protected Friend currentUserName As String
Private salary As Decimal
Static runningTotal As Integer

Se Option Explicit è on (impostazione predefinita), il compilatore richiede una dichiarazione per ogni variabile utilizzata.If Option Explicit is on (the default), the compiler requires a declaration for every variable you use. Per altre informazioni, vedere istruzione Option Explicit.For more information, see Option Explicit Statement.

Specifica di un valore inizialeSpecifying an Initial Value

È possibile assegnare un valore a una variabile al momento della creazione.You can assign a value to a variable when it is created. Per un tipo di valore, si usa un inizializzatore per fornire un'espressione da assegnare alla variabile.For a value type, you use an initializer to supply an expression to be assigned to the variable. L'espressione deve restituire una costante che può essere calcolata in fase di compilazione.The expression must evaluate to a constant that can be calculated at compile time.

Dim quantity As Integer = 10
Dim message As String = "Just started"

Se viene specificato un inizializzatore e non viene specificato un tipo di dati in una clausola As, viene utilizzata l' inferenza del tipo per dedurre il tipo di dati dall'inizializzatore.If an initializer is specified and a data type is not specified in an As clause, type inference is used to infer the data type from the initializer. Nell'esempio seguente num1 e num2 sono fortemente tipizzati come numeri interi.In the following example, both num1 and num2 are strongly typed as integers. Nella seconda dichiarazione, l'inferenza del tipo deduce il tipo dal valore 3.In the second declaration, type inference infers the type from the value 3.

' Use explicit typing.
Dim num1 As Integer = 3

' Use local type inference.
Dim num2 = 3

L'inferenza del tipo si applica a livello di routine.Type inference applies at the procedure level. Non si applica all'esterno di una routine in una classe, una struttura, un modulo o un'interfaccia.It does not apply outside a procedure in a class, structure, module, or interface. Per ulteriori informazioni sull'inferenza del tipo, vedere l' istruzione Option deduce e l' inferenza del tipo locale.For more information about type inference, see Option Infer Statement and Local Type Inference.

Per informazioni su cosa accade quando un tipo di dati o un inizializzatore non viene specificato, vedere valori e tipi di dati predefiniti più avanti in questo argomento.For information about what happens when a data type or initializer is not specified, see Default Data Types and Values later in this topic.

È possibile utilizzare un inizializzatore di oggetto per dichiarare istanze di tipi denominati e anonimi.You can use an object initializer to declare instances of named and anonymous types. Il codice seguente crea un'istanza di una classe Student e usa un inizializzatore di oggetto per inizializzare le proprietà.The following code creates an instance of a Student class and uses an object initializer to initialize properties.

Dim student1 As New Student With {.First = "Michael",
                                  .Last = "Tucker"}

Per altre informazioni sugli inizializzatori di oggetto, vedere procedura: dichiarare un oggetto usando un inizializzatore dioggetto, inizializzatori di oggetto: tipi denominati e anonimie tipi anonimi.For more information about object initializers, see How to: Declare an Object by Using an Object Initializer, Object Initializers: Named and Anonymous Types, and Anonymous Types.

Dichiarazione di più variabiliDeclaring Multiple Variables

È possibile dichiarare diverse variabili in un'unica istruzione di dichiarazione, specificando il nome della variabile per ciascuna di esse e seguendo ogni nome di matrice con le parentesi.You can declare several variables in one declaration statement, specifying the variable name for each one, and following each array name with parentheses. Nel caso di più variabili, è possibile separarle mediante virgole.Multiple variables are separated by commas.

Dim lastTime, nextTime, allTimes() As Date

Se si dichiara più di una variabile con una clausola As, non è possibile fornire un inizializzatore per quel gruppo di variabili.If you declare more than one variable with one As clause, you cannot supply an initializer for that group of variables.

È possibile specificare tipi di dati diversi per variabili diverse utilizzando una clausola As separata per ogni variabile dichiarata.You can specify different data types for different variables by using a separate As clause for each variable you declare. Ogni variabile accetta il tipo di dati specificato nella prima clausola As rilevata dopo la relativa parte variablename.Each variable takes the data type specified in the first As clause encountered after its variablename part.

Dim a, b, c As Single, x, y As Double, i As Integer
' a, b, and c are all Single; x and y are both Double

MatriciArrays

È possibile dichiarare una variabile in modo che contenga una matrice, che può includere più valori.You can declare a variable to hold an array, which can hold multiple values. Per specificare che una variabile include una matrice, seguire immediatamente la variablename con le parentesi.To specify that a variable holds an array, follow its variablename immediately with parentheses. Per altre informazioni sulle matrici, vedere Matrici.For more information about arrays, see Arrays.

È possibile specificare il limite inferiore e superiore di ogni dimensione di una matrice.You can specify the lower and upper bound of each dimension of an array. A tale scopo, includere un boundslist all'interno delle parentesi.To do this, include a boundslist inside the parentheses. Per ogni dimensione, il boundslist specifica il limite superiore e, facoltativamente, il limite inferiore.For each dimension, the boundslist specifies the upper bound and optionally the lower bound. Il limite inferiore è sempre zero, indipendentemente dal fatto che sia specificato o meno.The lower bound is always zero, whether you specify it or not. Ogni indice può variare da zero al valore del limite superiore.Each index can vary from zero through its upper bound value.

Le due istruzioni seguenti sono equivalenti.The following two statements are equivalent. Ogni istruzione dichiara una matrice di 21 elementi Integer.Each statement declares an array of 21 Integer elements. Quando si accede alla matrice, l'indice può variare da 0 a 20.When you access the array, the index can vary from 0 through 20.

Dim totals(20) As Integer
Dim totals(0 To 20) As Integer

Nell'istruzione seguente viene dichiarata una matrice bidimensionale di tipo Double.The following statement declares a two-dimensional array of type Double. La matrice include 4 righe (3 + 1) di 6 colonne (5 + 1) ognuna.The array has 4 rows (3 + 1) of 6 columns (5 + 1) each. Si noti che un limite superiore rappresenta il valore massimo possibile per l'indice e non la lunghezza della dimensione.Note that an upper bound represents the highest possible value for the index, not the length of the dimension. La lunghezza della dimensione è il limite superiore più uno.The length of the dimension is the upper bound plus one.

Dim matrix2(3, 5) As Double

Una matrice può avere dimensioni da 1 a 32.An array can have from 1 to 32 dimensions.

È possibile lasciare vuoti tutti i limiti in una dichiarazione di matrice.You can leave all the bounds blank in an array declaration. In tal caso, la matrice ha il numero di dimensioni specificate, ma non è inizializzata.If you do this, the array has the number of dimensions you specify, but it is uninitialized. Ha un valore di Nothing fino a quando non si inizializzano almeno alcuni dei relativi elementi.It has a value of Nothing until you initialize at least some of its elements. Nell'istruzione Dim devono essere specificati i limiti per tutte le dimensioni o per nessuna dimensione.The Dim statement must specify bounds either for all dimensions or for no dimensions.

' Declare an array with blank array bounds.
Dim messages() As String
' Initialize the array.
ReDim messages(4)

Se la matrice ha più di una dimensione, è necessario includere virgole tra le parentesi per indicare il numero di dimensioni.If the array has more than one dimension, you must include commas between the parentheses to indicate the number of dimensions.

Dim oneDimension(), twoDimensions(,), threeDimensions(,,) As Byte

È possibile dichiarare una matrice di lunghezza zero dichiarando una delle dimensioni della matrice come-1.You can declare a zero-length array by declaring one of the array's dimensions to be -1. Una variabile che contiene una matrice di lunghezza zero non ha il valore Nothing.A variable that holds a zero-length array does not have the value Nothing. Le matrici di lunghezza zero sono richieste da alcune funzioni Common Language Runtime.Zero-length arrays are required by certain common language runtime functions. Se si tenta di accedere a una matrice di questo tipo, si verifica un'eccezione in fase di esecuzione.If you try to access such an array, a runtime exception occurs. Per altre informazioni, vedere Matrici.For more information, see Arrays.

È possibile inizializzare i valori di una matrice usando un valore letterale di matrice.You can initialize the values of an array by using an array literal. A tale scopo, racchiudere i valori di inizializzazione tra parentesi graffe ({}).To do this, surround the initialization values with braces ({}).

Dim longArray() As Long = {0, 1, 2, 3}

Per le matrici multidimensionali, l'inizializzazione di ogni dimensione separata è racchiusa tra parentesi graffe nella dimensione esterna.For multidimensional arrays, the initialization for each separate dimension is enclosed in braces in the outer dimension. Gli elementi vengono specificati in ordine di riga.The elements are specified in row-major order.

Dim twoDimensions(,) As Integer = {{0, 1, 2}, {10, 11, 12}}

Per ulteriori informazioni sui valori letterali di matrice, vedere matrici.For more information about array literals, see Arrays.

Tipi di dati e valori predefinitiDefault Data Types and Values

Nella tabella seguente vengono descritti i risultati di varie combinazioni della specifica del tipo di dati e dell'inizializzatore in un'istruzione Dim.The following table describes the results of various combinations of specifying the data type and initializer in a Dim statement.

Tipo di dati specificato?Data type specified? Inizializzatore specificato?Initializer specified? EsempioExample RisultatoResult
NoNo NoNo Dim qty Se Option Strict è disattivato (impostazione predefinita), la variabile viene impostata su Nothing.If Option Strict is off (the default), the variable is set to Nothing.

Se Option Strict è abilitato, si verifica un errore in fase di compilazione.If Option Strict is on, a compile-time error occurs.
NoNo Yes Dim qty = 5 Se l' opzione deduce è on (impostazione predefinita), la variabile accetta il tipo di dati dell'inizializzatore.If Option Infer is on (the default), the variable takes the data type of the initializer. Vedere inferenza del tipo locale.See Local Type Inference.

Se le istruzioni Option Infer e Option Strict sono disabilitate, il tipo di dati accettato dalla variabile è Object.If Option Infer is off and Option Strict is off, the variable takes the data type of Object.

Se Option Infer è disabilitato e Option Strict è abilitato, si verifica un errore in fase di compilazione.If Option Infer is off and Option Strict is on, a compile-time error occurs.
Yes NoNo Dim qty As Integer La variabile viene inizializzata sul valore predefinito per il tipo di dati.The variable is initialized to the default value for the data type. Vedere la tabella più avanti in questa sezione.See the table later in this section.
Yes Yes Dim qty As Integer = 5 Se il tipo di dati dell'inizializzatore non è convertibile nel tipo di dati specificato, si verifica un errore in fase di compilazione.If the data type of the initializer is not convertible to the specified data type, a compile-time error occurs.

Se si specifica un tipo di dati ma non si specifica un inizializzatore, Visual Basic inizializza la variabile sul valore predefinito per il tipo di dati.If you specify a data type but do not specify an initializer, Visual Basic initializes the variable to the default value for its data type. Nella tabella seguente vengono illustrati i valori di inizializzazione predefiniti.The following table shows the default initialization values.

Tipo di datiData type Valore predefinitoDefault value
Tutti i tipi numerici (inclusi Byte e SByte)All numeric types (including Byte and SByte) 00
Char Binario 0Binary 0
Tutti i tipi di riferimento (inclusi Object, Stringe tutte le matrici)All reference types (including Object, String, and all arrays) Nothing
Boolean False
Date 12:00 del 1 ° gennaio dell'anno 1 (01/01/0001 12:00:00 AM)12:00 AM of January 1 of the year 1 (01/01/0001 12:00:00 AM)

Ogni elemento di una struttura viene inizializzato come se fosse una variabile separata.Each element of a structure is initialized as if it were a separate variable. Se si dichiara la lunghezza di una matrice senza inizializzarne gli elementi, ogni elemento viene inizializzato come se fosse una variabile separata.If you declare the length of an array but do not initialize its elements, each element is initialized as if it were a separate variable.

Durata variabile locale staticaStatic Local Variable Lifetime

Una Static variabile locale ha una durata maggiore di quella della routine in cui è dichiarata.A Static local variable has a longer lifetime than that of the procedure in which it is declared. I limiti della durata della variabile dipendono dalla posizione in cui la procedura viene dichiarata e dal fatto che sia Shared.The boundaries of the variable's lifetime depend on where the procedure is declared and whether it is Shared.

Dichiarazione di routineProcedure declaration Variabile inizializzataVariable initialized La variabile smette di esistereVariable stops existing
In un moduloIn a module La prima volta che viene chiamata la stored procedureThe first time the procedure is called Quando il programma interrompe l'esecuzioneWhen your program stops execution
In una classe o una struttura, la procedura è SharedIn a class or structure, procedure is Shared La prima volta che la stored procedure viene chiamata su un'istanza specifica o sulla classe o sulla struttura stessaThe first time the procedure is called either on a specific instance or on the class or structure itself Quando il programma interrompe l'esecuzioneWhen your program stops execution
In una classe o una struttura, la routine non è SharedIn a class or structure, procedure isn't Shared La prima volta che la stored procedure viene chiamata su un'istanza specificaThe first time the procedure is called on a specific instance Quando l'istanza viene rilasciata per Garbage Collection (GC)When the instance is released for garbage collection (GC)

Attributi e modificatoriAttributes and Modifiers

È possibile applicare attributi solo alle variabili membro e non alle variabili locali.You can apply attributes only to member variables, not to local variables. Un attributo fornisce informazioni ai metadati dell'assembly, che non è significativo per l'archiviazione temporanea, ad esempio le variabili locali.An attribute contributes information to the assembly's metadata, which is not meaningful for temporary storage such as local variables.

A livello di modulo, non è possibile usare il modificatore Static per dichiarare le variabili membro.At module level, you cannot use the Static modifier to declare member variables. A livello di procedura, non è possibile utilizzare Shared, Shadows, ReadOnly, WithEventso qualsiasi modificatore di accesso per dichiarare le variabili locali.At procedure level, you cannot use Shared, Shadows, ReadOnly, WithEvents, or any access modifiers to declare local variables.

È possibile specificare quale codice può accedere a una variabile fornendo un accessmodifier.You can specify what code can access a variable by supplying an accessmodifier. Le variabili membro della classe e del modulo (all'esterno di qualsiasi routine) sono predefinite per l'accesso privato e le variabili membro della struttura sono predefinite per l'accesso pubblico.Class and module member variables (outside any procedure) default to private access, and structure member variables default to public access. È possibile modificare i livelli di accesso con i modificatori di accesso.You can adjust their access levels with the access modifiers. Non è possibile usare i modificatori di accesso per le variabili locali (all'interno di una routine).You cannot use access modifiers on local variables (inside a procedure).

È possibile specificare WithEvents solo sulle variabili membro, non sulle variabili locali all'interno di una routine.You can specify WithEvents only on member variables, not on local variables inside a procedure. Se si specifica WithEvents, il tipo di dati della variabile deve essere un tipo di classe specifico, non Object.If you specify WithEvents, the data type of the variable must be a specific class type, not Object. Non è possibile dichiarare una matrice con WithEvents.You cannot declare an array with WithEvents. Per ulteriori informazioni sugli eventi, vedere eventi.For more information about events, see Events.

Nota

Il codice esterno a una classe, una struttura o un modulo deve qualificare il nome di una variabile membro con il nome della classe, della struttura o del modulo.Code outside a class, structure, or module must qualify a member variable's name with the name of that class, structure, or module. Il codice esterno a una procedura o a un blocco non può fare riferimento ad alcuna variabile locale all'interno di tale procedura o blocco.Code outside a procedure or block cannot refer to any local variables within that procedure or block.

Rilascio di risorse gestiteReleasing Managed Resources

Il .NET Framework Garbage Collector elimina le risorse gestite senza alcuna codifica aggiuntiva da parte dell'utente.The .NET Framework garbage collector disposes of managed resources without any extra coding on your part. Tuttavia, è possibile forzare l'eliminazione di una risorsa gestita anziché attendere il Garbage Collector.However, you can force the disposal of a managed resource instead of waiting for the garbage collector.

Se una classe dispone di una risorsa particolarmente preziosa e limitata (ad esempio una connessione al database o un handle di file), è possibile che non si desideri attendere fino al Garbage Collection successivo per eliminare un'istanza di classe che non è più in uso.If a class holds onto a particularly valuable and scarce resource (such as a database connection or file handle), you might not want to wait until the next garbage collection to clean up a class instance that's no longer in use. Una classe può implementare l'interfaccia IDisposable per fornire un modo per rilasciare le risorse prima di un Garbage Collection.A class may implement the IDisposable interface to provide a way to release resources before a garbage collection. Una classe che implementa tale interfaccia espone un metodo di Dispose che può essere chiamato per forzare il rilascio immediato di risorse preziose.A class that implements that interface exposes a Dispose method that can be called to force valuable resources to be released immediately.

L'istruzione Using automatizza il processo di acquisizione di una risorsa, l'esecuzione di un set di istruzioni e quindi l'eliminazione della risorsa.The Using statement automates the process of acquiring a resource, executing a set of statements, and then disposing of the resource. Tuttavia, la risorsa deve implementare l'interfaccia IDisposable.However, the resource must implement the IDisposable interface. Per altre informazioni, vedere Istruzione using.For more information, see Using Statement.

EsempioExample

Nell'esempio seguente vengono dichiarate le variabili usando l'istruzione Dim con varie opzioni.The following example declares variables by using the Dim statement with various options.

' Declare and initialize a Long variable.
Dim startingAmount As Long = 500

' Declare a variable that refers to a Button object,
' create a Button object, and assign the Button object
' to the variable.
Dim switchButton As New System.Windows.Forms.Button

' Declare a local variable that always retains its value,
' even after its procedure returns to the calling code.
Static totalSales As Double

' Declare a variable that refers to an array.
Dim highTemperature(31) As Integer

' Declare and initialize an array variable that
' holds four Boolean check values.
Dim checkValues() As Boolean = {False, False, True, False}

EsempioExample

Nell'esempio seguente vengono elencati i numeri primi compresi tra 1 e 30.The following example lists the prime numbers between 1 and 30. L'ambito delle variabili locali è descritto nei commenti del codice.The scope of local variables is described in code comments.

Public Sub ListPrimes()
    ' The sb variable can be accessed only
    ' within the ListPrimes procedure.
    Dim sb As New System.Text.StringBuilder()

    ' The number variable can be accessed only
    ' within the For...Next block.  A different
    ' variable with the same name could be declared
    ' outside of the For...Next block.
    For number As Integer = 1 To 30
        If CheckIfPrime(number) = True Then
            sb.Append(number.ToString & " ")
        End If
    Next

    Debug.WriteLine(sb.ToString)
    ' Output: 2 3 5 7 11 13 17 19 23 29
End Sub


Private Function CheckIfPrime(ByVal number As Integer) As Boolean
    If number < 2 Then
        Return False
    Else
        ' The root and highCheck variables can be accessed
        ' only within the Else block.  Different variables
        ' with the same names could be declared outside of
        ' the Else block.
        Dim root As Double = Math.Sqrt(number)
        Dim highCheck As Integer = Convert.ToInt32(Math.Truncate(root))

        ' The div variable can be accessed only within
        ' the For...Next block.
        For div As Integer = 2 To highCheck
            If number Mod div = 0 Then
                Return False
            End If
        Next

        Return True
    End If
End Function

EsempioExample

Nell'esempio seguente, la variabile speedValue viene dichiarata a livello di classe.In the following example, the speedValue variable is declared at the class level. La parola chiave Private viene utilizzata per dichiarare la variabile.The Private keyword is used to declare the variable. È possibile accedere alla variabile da qualsiasi routine della classe Car.The variable can be accessed by any procedure in the Car class.

' Create a new instance of a Car.
Dim theCar As New Car()
theCar.Accelerate(30)
theCar.Accelerate(20)
theCar.Accelerate(-5)

Debug.WriteLine(theCar.Speed.ToString)
' Output: 45
Public Class Car
    ' The speedValue variable can be accessed by
    ' any procedure in the Car class.
    Private speedValue As Integer = 0

    Public ReadOnly Property Speed() As Integer
        Get
            Return speedValue
        End Get
    End Property

    Public Sub Accelerate(ByVal speedIncrease As Integer)
        speedValue += speedIncrease
    End Sub
End Class

Vedere ancheSee also