Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' implementare la gestione di un elenco di contatti
- ' ogni contatto
- ' 1) dovrà avere un nome
- ' 2) potrà avere un cognome
- ' 3) potrà avere una data di nascita (passata, ovviamente)
- Public Class Contact ' Definizione del concetto di "contatto"
- Private _name As String ' memorizza il nome del contatto
- Private _birthday As Date ' memorizza la data di nascita
- Public Property Name As String ' accede al nome del contatto
- Get ' accesso in lettura
- Return _name
- End Get
- ' Set(Value As String) '
- Set ' accesso in scrittura <- qui c'è un PARAMETRO IMPLICITO della sub Set che si chiama Value
- ' controlla il valore passato come parametro:
- If Value.Trim().Length > 0 Then ' se c'è scritto qualcosa...
- _name = Value ' ... imposta il nome
- Else ' altrimenti
- _name = "NON FORNITO" ' imposta un default
- End If
- End Set
- End Property
- Public Property Surname As String ' accede al cognome in lettura/scrittura senza vincoli
- Public Property Birthday As DateTime ' accede alla data di nascita
- Get ' accesso in lettura
- Return _birthday
- End Get
- Set ' accesso in scrittura
- ' confronto tra il valore passato come parametro e la data odierna:
- If Value.CompareTo(DateTime.Now) < 0 Then ' CompareTo restituisce -1 se l'elemento di sinistra è minore di quello di destra, 0 se sono uguali, 1 altrimenti
- _birthday = Value
- Else ' altrimenti
- _birthday = Nothing ' imposta la data di nascita ad un valore Nothing, che significa "Assenza di informazione"/"Nessuna informazione fornita"
- End If
- End Set
- End Property
- Public Sub New(name As String, Optional surname As String = "", Optional birthday As DateTime = Nothing) ' costruttore: unico parametro obbligatorio: Nome
- ' i parametri del metodo hanno LO STESSO nome delle variabili di stato
- ' il Me serve a risolvere questo conflitto di nomi
- Me.Name = name ' Me = risolutore di proprietà => l'elemento che segue il Me è riferito alla classe e non al metodo
- Me.Surname = surname
- Me.Birthday = birthday
- End Sub
- Public Function AsString() As String ' rappresentazione sotto forma di stringa
- ' String.Format consente di costruire una stringa sulla base di un formato configurabile in maniera spinta
- Return String.Format("{0} {1} ({2:MM}/'{2:yy})", Name, Surname, Birthday)
- End Function
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement