View Full Version : [VB.NET] Proprietà
Salve, ho delle domande da rivolgere sulle proprietà. Ho capito che esse servono a rendere pubblici campi privati, ma non comprendo la sua sintassi:
Property [Nome della proprieta']([Eventuali parametri]) As [Tipo]
Get
Return
End Get
Set(ByVal Value As [Tipo])
End Set
End Property
cosa sono get e set e a cosa servono? hanno funzioni diverse?
vi ringrazio in anticipo
RaouL_BennetH
08-07-2008, 18:41
ti rispondo con un esempio:
Private cognome As String
Private nome As String
Public Property GetCognome() As String
Get
return cognome
End Get
Set (ByVal Value As String)
cognome = value
End Set
End Property
'uguale anche per nome
In questo caso abbiamo usato get e set, che sono i metodi accessori e mutatori della proprietà, in pratica dicono:
Get = Prendi 'cognome'
Set = assegna il valore preso con get a 'cognome'
N.B.: Set potrebbe anche non assegnare nessun valore a cognome, in questo caso avremo un membro in sola lettura.
Per un esempio pratico, supponiamo che tu abbia la tua classe Persona, ed un form con due caselle di testo:
In un qualsiasi evento del form, puoi dire che:
Dim personaSingola As new Persona()
personaSingola.GetCognome = casellaDiTesto1.Text
personaSingola.GetNome = casellaDiTesto2.Text
'in pratica, abbiamo preso il valore dalle caselle di testo (get) e lo abbiamo
'assegnato ai membri della classe Persona (set) per cognome e nome
*Quest'ultima frase non è proprio correttissima, sarebbe meglio parlare
'in termini di oggetto personaSingola (istanza della classe Persona)
Spero di non aver detto stravaccate :D
Le proprietà in linea di massima servono come interfaccia da e verso l'esterno di variabili private di una classe.
Tutto parte dal fatto che se hai una variabile privata naturalmente essa non è accessibile direttamente.
Se non esistessero le proprietà faresti un metodo per valorizzare tale proprietà e uno per "restitiurla"
Per Esempio:
Private _pippo As Integer
Public Function ValorizzaPippo(ByVal val As Integer) As Boolean
' eventuali controlli
_pippo = val
'se tutto va bene
Return True
End Function
Public Function RestituisciPippo() As Integer
' eventuali controlli
Return _pippo
End Function
Con una sola proprietà metti insieme le due cose
Public Property Pippo()
Get
Return _pippo
End Get
Set(ByVal value)
' eventuali controlli
_pippo = value
End Set
End Property
Quindi:
Get restituisce il valore di _pippo
Set imposta il valore di _pippo
grazie ad entrambi per la risposta
sapete spiegarmi le proprietà di default?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.