Casino online











Mercato forex






A4. Moduli, Classi e Namespace

Moduli
I Moduli sono spesso usati come contenitori per procedure, funzioni o variabili impiegati in altri punti dell'applicazione, oppure per fornire un punto di ingresso all'applicazione stessa, in modo da rilevare alcuni parametri prima dell'avvio vero e proprio. Tuttavia i moduli sono raramente utilizzati nella scrittura delle applicazioni complesse: più che altro sono utili per provare alcuni piccoli spezzoni di codice. Una cosa che mi capita spesso è di rispondere alle domande nei forum o su messenger riguardo ad un certo codice, che genera certi errori: qualora non riuscissi ad individuare subito il problema, userei un modulo per testarlo velocemente e osservare cosa c'è che non va. È un metodo veloce e comodo. Un altro utilizzo del modulo è quello a fini didattici, come sto facendo in questo momento, ossia illustrare il funzionamento di costrutti, espressioni o metodi con degli esempi.
I Moduli sono scritti in file con estensione *.vb, come del resto anche le classi e i namespace, e sono dichiarati e delimitati dalle perole riservate Module [Nome del Moudlo]...End Module:
Module Esempio
    'Qualcosa
End Module  
Il punto d'ingresso di un'applicazion Console, che lavora in ambiente DOS e che noi useremo per esemplificare i concetti, è la procedura Main. Non è possibile dichiarare due procedure Main, poichè si creerebbe dell'ambiguità e il programma non saprebbe quale scegliere.
Module Esempio
    Sub Main()
        'Scrive sullo schermo il classico messaggio "Hello, World!"
        Console.WriteLine("Hello World!")
  
        'Aspetta la pressione di un tasto per uscire
        Console.ReadKey()
    End Sub
End Module  
Oltre a Main, c'è un'altra procedura interessante che può essere eseguita nei moduli, ed è New. Questa viene eseguita prima di qualsiasi altra cosa ed è utile per inizializzare campi (vedi oltre, Classi) e variabili (vedi capitolo successivo): infatti è un costruttore (vedi capitolo relativo).


Classi
Come già detto in precedenza, ogni cosa nell'ambiente .Net è una classe, compresi i tipi di dato primitivi, come valori interi, decimali, stringhe e caratteri. Differentemente da come avveniva in passato, ciò che uno sviluppatore .Net si deve preoccupare di fare è utilizzare e manipolare gli oggetti forniti dal Framework o estendere questi utilimi personalizzandoli. Per definire come un oggetto sia costruito e come debba comportarsi, il programmatore deve scrivere una Classe. Le classi vengono scritte in file con estensione *.vb e sono dichiarate e delimitate dalle parole riservate Class [Nome della Classe]...End Class:
Class Utente
    Private Nome, Cognome As String
    Private Password As String
  
    Public Sub CambiaPassword(ByVal NuovaPassword As String)
        Password = NuovaPassword
    End Sub
End Class  
In questo esempio ho dichiarato una Classe di nome Utente che contiene tre variabili di tipo String (vedi capitolo successivo) e una procedura di nome CambiaPassword, che serve, ovviamente, a cambiare la password. Tutte le variabili, le proprietà, le strutture e gli enumeratori appartenenti a una classe sono detti membri di classe, mentre ogni funzione o procedura è detta metodo della classe.


Namespace
I Namespace non sono unità funzionali come i moduli o le classi, ma rappresentano dei raggruppamenti. Essi servono, infatti, a fornire una struttura solida in cui dichiarare le classi, dividendole per tipo base o per compiti. Esemplificando, se si dovesse creare una libreria di classi contenente metodi che rendono agevole lavorare con le figure geometriche, potremmo usare i Namespace per separare le varie aree di competenza:
Namespace Triangolo
    Class Scaleno
    '...
    End Class
    
    Class Isoscele
    '...
    End Class
    
    Class Equilatero
    '...
    End Class
End Namespace

Namespace Quadrilatero
    Namespace Parallelogrammi
        Class Parallelogramma
        '...
        End Class
        
        Namespace Rombi
            Class Rombo
            '...
            End Class
            
            Class Quadrato
            '...
            End Class
        End Namespace
    End Namespace
End Namespace  
Come si vede dall'esempio, un Namespace è dichiarato con le keywords Namespace [Nome del Namespace]...End Namespace. Una cosa da evidenziare è il fatto che si possano dichiarare più Namespace uno dentro l'altro, quindi nidificati, ognuno dei quali restringe sempre di più il campo d'azione, aumentando la particolarità. Tutti i Namespace del Framework, tranne System, sono nidificati. L'operatore che ci permette di accedere a un campo (o a un metodo) da una classe, o a una classe da un namespace, o ai rispettivi membri o classi nidificati di altre classi o namespace, è l'operatore punto '.'.

'Accede alla classe Quadrato
Quadrilatero.Parallelogrammi.Rombi.Quadrato

'Accede alla classe Scaleno
Triangolo.Scaleno  





 

The Totem's Lair - Copyright (C) 2009
È vietata la riproduzione sia totale che parziale del sito.