Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ''' <summary>
- ''' Definizione di un contatto.
- ''' </summary>
- ''' <remarks>Un contatto ha un nome e un recapito.</remarks>
- Public Class Contact
- ''' <summary>
- ''' Nome del contatto.
- ''' </summary>
- Public Property Name As String
- ''' <summary>
- ''' Recapito del contatto.
- ''' </summary>
- Public Property Delivery As Address
- ''' <summary>
- ''' Rappresentazione del contatto come stringa.
- ''' </summary>
- Public Overrides Function ToString() As String
- Dim description As New System.Text.StringBuilder ' devo restituire una stringa costruita per passaggi successivi
- description.AppendFormat("Nome: {0}", Name) ' aggiungo il nome del contatto
- If Delivery IsNot Nothing Then ' controllo se è stato specificato un valore per il recapito
- description.AppendFormat(" [{0}]", Delivery) ' in questo caso lo aggiungo al risultato
- End If
- Return description.ToString ' restituisco la stringa costruita passo passo
- End Function
- End Class
- ''' <summary>
- ''' Un qualsiasi indirizzo.
- ''' </summary>
- ''' <remarks>Serve solo a dare un nome alla FAMIGLIA di classi che rappresentano gli indirizzi.</remarks>
- Public MustInherit Class Address
- End Class
- ''' <summary>
- ''' Un numero telefonico.
- ''' </summary>
- Public Class PhoneNumber
- Inherits Address ' è un indirizzo
- ''' <summary>
- ''' Numero di telefono.
- ''' </summary>
- Public Property Phone As String
- ''' <summary>
- ''' Descrizione di un numero di telefono.
- ''' </summary>
- Public Overrides Function ToString() As String
- Return String.Format("Telefono: {0}", Phone)
- End Function
- End Class
- ''' <summary>
- ''' Un indirizzo email.
- ''' </summary>
- Public Class EMailAddress
- Inherits Address ' anche questo è un indirizzo
- ''' <summary>
- ''' Indirizzo di posta elettronica.
- ''' </summary>
- Public Property Email As String
- ''' <summary>
- ''' Descrizione di un indirizzo di posta elettronica.
- ''' </summary>
- Public Overrides Function ToString() As String
- Return String.Format("Email: {0}", Email)
- End Function
- End Class
- ''' <summary>
- ''' Un indirizzo postale.
- ''' </summary>
- Public Class SnailmailAddress
- Inherits Address ' anch'esso è un indirizzo
- ''' <summary>
- ''' Via.
- ''' </summary>
- Public Property Street As String
- ''' <summary>
- ''' Città.
- ''' </summary>
- Public Property City As String
- ''' <summary>
- ''' Descrizione di un indirizzo postale.
- ''' </summary>
- Public Overrides Function ToString() As String
- Return String.Format("Indirizzo postale: {0} - {1}", Street, City)
- End Function
- End Class
- Module Module1
- Sub Main()
- ' i miei contatti...
- Dim paperino As New Contact With {
- .Name = "Paperino",
- .Delivery = New EMailAddress() With {.Email = "paperino@paperopoli.net"}
- }
- Dim topolino As New Contact With {
- .Name = "Topolino",
- .Delivery = New PhoneNumber With {.Phone = "1234567"}
- }
- Dim paperone As New Contact With {
- .Name = "Paperon De' Paperoni",
- .Delivery = New SnailmailAddress With {.City = "Paperopoli", .Street = "via del Deposito, n. 1"}
- }
- ' ...aggiunti alla lista ---+
- ' |
- ' V
- Dim rubrica As New List(Of Contact) From {paperino, topolino, paperone}
- ' il From serve per inizializzare una lista con un "elenco di inizializzazione"
- ' consumo la lista
- For Each item As Contact In rubrica
- Console.WriteLine(item)
- Next
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement