Om jag vill ha en property med namnet FromName, som man både ska läsa och skriva till, så kan man ju skriva så här:
Public FromName As String
eller:
Private sFromName as String
Public Property Get FromName() As String
FromName = sFromName
End Property
Public Property Let FromName(sValue As String)
sFromName = sValue
End Property
Vad bör man använda? Finns det något som säger att det andra alternativet alltid är bäst..?
Ah, jo det var nog så jag menade. Var ett tag sedan jag höll på med VB. En sub eller function är ju Private eller Public :r
Men principen är densamma. Om du bara ska använda det i en class eller ett form så ska du använda Private. Ska du kunna använda det var som helst så använder du Public.
Om jag vill ha en property med namnet FromName, som man både ska läsa och skriva till, så kan man ju skriva så här:
Public FromName As String
eller:
Private sFromName as String
Public Property Get FromName() As String
FromName = sFromName
End Property
Public Property Let FromName(sValue As String)
sFromName = sValue
End Property
Vad bör man använda? Finns det något som säger att det andra alternativet alltid är bäst..?
Fördelen med properties är ju att du kan baka in valideringskod i dem och kasta exceptions om något går galet.
Du kan ju skapa en sk. Read-Only property om du använder Get men inte Set. Det får du ju inte med en vanlig Public. Vidare, du kan få snyggare namn på dina props i ditt interface om man har som för vana att använda prefix på sina properties. Jag sätter alltid "p_" eller "g_", och även datatypsprefix, framför alla mina props som är interna, vill jag sedan göra dem till en del av det publika gränssnittet så är det kanske lite snyggare att ta bort dessa prefix och döpa variabeln till något mänskligt.
Jag är mycket för Get och Set, det känns bättre om man vill bygga ut i framtiden, även om man bör betänka vilka variablar som är intressanta för sådant.
355 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e