webForumDet fria alternativet

Class Property

2 svar · 249 visningar · startad av Prometheus

PrometheusMedlem sedan mars 2001363 inlägg
#1

Hmm...

Vad gör Property Get, Let och Set? Tycker inte jag hittar någon bra förklaring...

PatrikBMedlem sedan mars 20002 836 inlägg
#2

Let:
"skriver" till en varabel

Get:
"läser" från en variabel

Set:
Sätter en objekt variabel

cya,
PatrikB

emissionMedlem sedan dec. 19996 721 inlägg
#3

Det finns (minst) två anledningar till att använda Property, i stället för att använda publika variabler.

Class MyClass

Public MyName

End Class

Class MyOtherClass

Private m_strName

Public Property Let MyName(strName)
   m_strName=strName
End Property

Public Property Get MyName(strName)
   MyName=m_strName
End Property

End Class

Dessa båda klasser gör i princip samma sak. Man kan sätta namnet med

instans.MyName="Sven Svensson"

Varför då använda Property?

Jo, dels kan man t.ex. ta bort Property Let-delen, och vips så har man en readonly-egenskap, som ingen kod i världen kan fixa med, dels kan man vidta extra åtgärder, helt transparent, både när egenskaperna sätts (t.ex. felkontroll - se till att ett värde håller sig inom vissa ramat) och när de avläses. T.ex. skulle man kunna....

Class MyOtherClass

Private m_strName

Public Property Let MyName(strName)
   m_strName=strName
End Property

Public Property Get MyName(strName)
   MyName=m_strName
End Property

Public Property Get MyFirstName(strName)
   arrNames=split(m_strName," ")
   MyFirstName=arrNames(lbound(arrNames))
End Property

Public Property Get MyLastName(strName)
   arrNames=split(m_strName," ")
   MyLastName=arrNames(ubound(arrNames))
End Property

End Class

...en klass där man bara kan sätta hela namnet, men hämta för- och efternamn, utan extra bestyr.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)