Classi per gli utenti di Visual Basic 6.0

Aggiornamento: novembre 2007

Le classi rappresentano le fondamenta di un'applicazione orientata ad oggetti. Una classe è un costrutto di programmazione che rappresenta un oggetto del sistema. Per creare un'applicazione occorre progettare gli oggetti necessari, le informazioni contenute negli oggetti e le funzionalità degli oggetti. Per ulteriori informazioni sulle classi e la programmazione orientata ad oggetti, vedere Programmazione orientata a oggetti in Visual Basic.

Moduli di classe

Visual Basic 6.0

In Visual Basic 6.0 la definizione delle classi si basa sul concetto di modulo di classe. La definizione di una classe è memorizzata in un particolare tipo di file con estensione .cls. In ogni modulo di classe è definita un'unica classe. Parte della definizione della classe è incorporata nel file .cls ed è modificabile solo tramite il sistema di progetto.

Visual Basic 2008

In Visual Basic 2008 le classi non si definiscono utilizzando un nome di file, bensì mediante l'Istruzione Class (Visual Basic). In Visual Basic 2008 le classi si definiscono nei file del codice sorgente, ovvero nei file con estensione .vb. In uno stesso file è possibile definire più classi. L'intera definizione della classe è contenuta nel codice sorgente come testo normale.

Classi globali

Visual Basic 6.0

Quando in Visual Basic 6.0 si crea una nuova classe, fra i valori consentiti per la proprietà Instancing vi sono i valori GlobalSingleUse e GlobalMultiUse. Tali valori indicano che altri componenti possono richiamare le proprietà e i metodi della nuova classe come se fossero membri condivisi. Un'istanza della classe viene creata in modo implicito alla prima chiamata di uno dei suoi membri.

Visual Basic 2008

In Visual Basic 2008 la proprietà Instancing non è supportata. Tuttavia, per ottenere la stessa funzionalità, in Visual Basic 2008 è consentito esporre membri di moduli standard. Per accedere a proprietà e metodi condivisi di una classe è possibile utilizzare l'istruzione Imports. È possibile ottenere gli stessi risultati di GlobalMultiUse tramite l'accesso alla classe Public e l'accesso appropriato al costruttore.

Classi di dati

Visual Basic 6.0

In Visual Basic 6.0 sono anche supportate le classi Data Source e Complex Data Consumer.

Visual Basic 2008

In Visual Basic 2008 non esiste alcun equivalente diretto. Per ulteriori informazioni sulle classi che modificano dati, vedere Procedura: connettersi ai dati di un oggetto.

Membri predefiniti

Visual Basic 6.0

In Visual Basic 6.0 è possibile specificare che un particolare metodo o membro di dati è il metodo predefinito di una classe.

Visual Basic 2008

In Visual Basic 2008 un membro predefinito di una classe o struttura può essere solo una proprietà che accetta uno o più argomenti. In questo modo viene consentita l'interoperabilità con altri linguaggi di programmazione. Per ulteriori informazioni, vedere Procedura: dichiarare e chiamare una proprietà predefinita in Visual Basic.

Durata dell'oggetto

Visual Basic 6.0

La durata di un oggetto è determinata dalla creazione e dalla terminazione dell'istanza dell'oggetto. Mentre l'ora di creazione di un oggetto è determinata dal programma che dichiara l'oggetto, la terminazione comporta un meccanismo più complesso.

In Visual Basic 6.0 ogni istanza di oggetto tiene un conteggio dei riferimenti. Quando l'ultimo riferimento a un'istanza viene rilasciato e il conteggio viene azzerato, l'oggetto termina immediatamente.

Visual Basic 2008

In Visual Basic 2008 un distruttore non viene necessariamente chiamato non appena viene rilasciato l'ultimo riferimento, in quanto Common Language Runtime mantiene una struttura di riferimenti anziché singoli conteggi di riferimenti. Il Garbage Collector analizza la struttura di riferimenti in background. Se viene rilevato un oggetto o un gruppo di oggetti a cui non è associato alcun riferimento presente nel codice correntemente in esecuzione, il Garbage Collector chiama il distruttore di tali oggetti. Non è possibile prevedere l'ordine della distruzione o il tempo richiesto al Garbage Collector per analizzare la struttura di riferimenti. La durata di un oggetto è quindi indeterminata. Per ulteriori informazioni, vedere Durata degli oggetti: come creare e distruggere oggetti e Garbage Collection.

Opzioni di aggiornamento

Mediante la procedura di aggiornamento guidata è possibile aggiornare un modulo di classe in modo semplice e con modifiche minime al codice. Oltre alle modifiche elencate in precedenza, i programmatori di Visual Basic dispongono di alcuni nuovi costrutti particolarmente indicati per la programmazione orientata ad oggetti. Alcuni di questi costrutti sono elencati di seguito.

  • Costruttori   I costruttori si sostituiscono alle funzioni svolte dall'istruzione Class_Initialize di Visual Basic 6.0. Per ulteriori informazioni, vedere Modifiche a Class_Initialize per gli utenti di Visual Basic 6.0.

  • Proprietà indicizzate predefinite   Le proprietà indicizzate predefinite sono estensivamente utilizzate in .NET Framework per accedere agli elementi degli insiemi. Per ulteriori informazioni, vedere Modifiche alle proprietà predefinite per gli utenti di Visual Basic 6.0.

  • ReadOnly   In Visual Basic 6.0, le proprietà sono implicitamente dichiarate di sola lettura se per esse non esiste alcuna routine Get. In Visual Basic 2008, invece, per dichiarare una proprietà di sola lettura è necessario utilizzare esplicitamente la parola chiave ReadOnly. Per ulteriori informazioni, vedere Istruzione Property.

  • Associazione tardiva   Poiché in Visual Basic 6.0 l'associazione tardiva è prevista per impostazione predefinita, il modo più efficace per aggiornare il codice senza incorrere in errori è di impostare l'istruzione Option Strict su Off. In questo modo si applica l'indipendenza dai tipi in fase di compilazione anziché in fase di esecuzione. Per ulteriori informazioni, vedere Istruzione Option Strict.

  • Overload dei metodi   Mediante l'overload dei metodi è possibile ridurre il numero di membri denominati in una classe. Di conseguenza la classe risulta più leggibile e più facile da utilizzare nei programmi. Per ulteriori informazioni, vedere Modifiche alle routine per gli utenti di Visual Basic 6.0.

  • Nome di file   In Visual Basic 6.0 è necessario che il nome della classe corrisponda al nome di file. In Visual Basic 2008 il programmatore controlla entrambi i nomi ed è in grado di definire più classi in uno stesso file d'origine. Il numero di classi contenuto in un dato file è in genere determinato in base a uno standard di codifica.

  • ByRef   In Visual Basic 6.0, per impostazione predefinita, i parametri sono passati tramite ByRef, quindi per non incorrere in problemi è opportuno implementare il passaggio medianteByRef anche nel codice aggiornato. Per ulteriori informazioni, vedere ByVal.

  • Parola chiave Return   In Visual Basic 6.0, per la restituzione dei valori di una funzione si utilizza come variabile il nome della funzione. In Visual Basic 2008, invece, per lo stesso scopo è disponibile un'esplicita parola chiave Return. Per ulteriori informazioni, vedere Istruzione Return (Visual Basic).

  • Overload degli operatori   Per le classi create dagli utenti è possibile definire il significato dell'addizione (+), della sottrazione (-) e degli altri operatori. Per ulteriori informazioni, vedere Istruzione Operator.

  • Nuovi operatori   L'operatore += può abbreviare e semplificare una riga di codice. Per ulteriori informazioni, vedere Operatori aritmetici (Visual Basic).

  • Definizione inline di nuovi valori   La sintassi di Visual Basic 2008 consente di dichiarare una nuova variabile e impostarne il valore in un'unica riga di codice. Ciò significa che è possibile impostare dei vincoli sui dati anche a partire dal momento in cui viene creata un'istanza dell'oggetto. Per ulteriori informazioni, vedere Istruzione Dim (Visual Basic).

La riscrittura del codice non è esente da rischi. Ogni volta che il codice viene modificato deve essere verificato di nuovo. Inoltre, per alcune parole chiave vi sono differenze di funzionamento fra Visual Basic 6.0 e Visual Basic 2008. Per ulteriori informazioni, vedere Aggiornamento di applicazioni create in versioni precedenti di Visual Basic.

Vedere anche

Concetti

Associazione anticipata e tardiva

Modifiche a Class_Initialize per gli utenti di Visual Basic 6.0

Riferimenti

Istruzione Structure

Istruzione Property

Istruzione Option Strict

Istruzione Return (Visual Basic)

Impossibile combinare 'ByVal' e 'ByRef'

ByRef

Altre risorse

Creazione e utilizzo di oggetti

Cenni preliminari sulle classi