bin nicht vertraut mit Propertys. Komme aus dem C++-Bereich, da handhabt man das anders.
Da wird das genau so gehandhabt. ;)
Anfänglich mit Getter und Setter Methoden, später kamen - seit C++ Version 6 meiner Erinnerung nach - dann auch Properties via Attribut. Das hat aber kaum jemand verwendet, weil es "ecklig" war diese Funktionalität pratisch zu benutzen; so blieben viele bei den zuvor genannten Getter und Setter.
Warum macht man das so?
Man möchte demjenigen, der diese Klasse benutzt nicht die Möglichkeit geben die Variable direkt zu verändern. Darum stellt man eine Property dafür bereit um einen kontrollierten Zugriff zu gewährleisten - im Englischen spricht man von Encapsulation.
Du kannst theoretisch/praktisch auch folgendes schreiben:
1 2 3 | Public Baujahr As Integer
Public Farbe As String
|
und könntest genauso dann damit arbeiten:
1 2 3 4 5 6 | Dim objAuto1 As Auto
Set objAuto1 = New Auto
objAuto1.Baujahr = 1700
Debug.Print objAuto1.Baujahr
|
Nur hast du dann keinerlei Kontrolle darüber was da drin steht - 1700 gabs noch keine Autos. ;)
Darum würde man das z.B. so implementieren:
1 2 3 4 5 6 | Public Property Let Baujahr(RHS As Integer )
If RHS < 1886 Then
Call Err.Raise(5, TypeName( Me ) & ".Baujahr" )
End If
m_Baujahr = RHS
End Property
|
|