Advertisement
NelloRizzo

Semplice Contatto

Apr 22nd, 2020
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 2.52 KB | None | 0 0
  1. ' implementare la gestione di un elenco di contatti
  2. ' ogni contatto
  3. '    1) dovrà avere un nome
  4. '    2) potrà avere un cognome
  5. '    3) potrà avere una data di nascita (passata, ovviamente)
  6.  
  7. Public Class Contact ' Definizione del concetto di "contatto"
  8.     Private _name As String ' memorizza il nome del contatto
  9.     Private _birthday As Date ' memorizza la data di nascita
  10.  
  11.     Public Property Name As String ' accede al nome del contatto
  12.         Get ' accesso in lettura
  13.             Return _name
  14.         End Get
  15.         ' Set(Value As String) '
  16.         Set ' accesso in scrittura <- qui c'è un PARAMETRO IMPLICITO della sub Set che si chiama Value
  17.             ' controlla il valore passato come parametro:
  18.             If Value.Trim().Length > 0 Then ' se c'è scritto qualcosa...
  19.                 _name = Value ' ... imposta il nome
  20.             Else ' altrimenti
  21.                 _name = "NON FORNITO" ' imposta un default
  22.             End If
  23.         End Set
  24.     End Property
  25.  
  26.     Public Property Surname As String ' accede al cognome in lettura/scrittura senza vincoli
  27.     Public Property Birthday As DateTime ' accede alla data di nascita
  28.         Get ' accesso in lettura
  29.             Return _birthday
  30.         End Get
  31.         Set ' accesso in scrittura
  32.             ' confronto tra il valore passato come parametro e la data odierna:
  33.             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
  34.                 _birthday = Value
  35.             Else ' altrimenti
  36.                 _birthday = Nothing ' imposta la data di nascita ad un valore Nothing, che significa "Assenza di informazione"/"Nessuna informazione fornita"
  37.             End If
  38.         End Set
  39.     End Property
  40.  
  41.     Public Sub New(name As String, Optional surname As String = "", Optional birthday As DateTime = Nothing) ' costruttore: unico parametro obbligatorio: Nome
  42.         ' i parametri del metodo hanno LO STESSO nome delle variabili di stato
  43.         ' il Me serve a risolvere questo conflitto di nomi
  44.         Me.Name = name ' Me = risolutore di proprietà => l'elemento che segue il Me è riferito alla classe e non al metodo
  45.         Me.Surname = surname
  46.         Me.Birthday = birthday
  47.     End Sub
  48.  
  49.     Public Function AsString() As String ' rappresentazione sotto forma di stringa
  50.         ' String.Format consente di costruire una stringa sulla base di un formato configurabile in maniera spinta
  51.         Return String.Format("{0} {1} ({2:MM}/'{2:yy})", Name, Surname, Birthday)
  52.     End Function
  53. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement