Hey,
danke erstmal für Eure Mühen. Ich weiß, ich bin eine harte Nuss...
Folgendes habe ich verstanden:
Das arbeiten mit Funktionen erfordert klammern. Beispiel:
msgbox meineKlasse.getName()
Und bei Let und Set können die Klammern weggelassen werden:
msgbox meineKlasse.getName
Das ist grundsätzlich etwas neu für mich. Ich habe mich schon immer gewundert warum in VBA-Codes so wenig Klammern vorzufinden sind...
Und bei der Zuweisung benötigt man bei Funktionen keinen Zuweisungsoperator:
myClass.Alter (10)
und bei der Zuweisung über Let kann man den Zuweisungsoperator benutzen (wenn man will - wie ich eben getestet habe):
myClass.Alter = 10
Habe ich das soweit richtig verstanden?
Folgendes von xlKing verstehe ich nicht:
1
2
3
4
5
6
7
8
9
|
Private m_version As Integer
Public Property Get Version() As Integer
Version = m_version
End Property
Friend Sub Version(Wert As Integer)
m_version = Wert
End Sub
|
Mit diesem Code kannst du eine schreibgeschützte Eigenschaft erzeugen, die zwar innerhalb deines Projekts (also nur von dir) beschrieben werden kann. Aber von anderen Projekten aus nur ausgelesen werden kann. Schau dazu einfach mal in den Objektkatalog da gibt es viele schreibgeschützte Eigenschaften.
Was meinst Du mit einer schreibgeschützten Eigenschaft? Ist die Eigenschaft m_version nicht bereits durch eine private-Deklaration quasi geschützt?
Aber schon richtig, Property-Procs haben eben für Getter u. Setter den gl. Namen, anaolg der VBA-Objekte im Objektkatalog....schon ne coole Sache, oder...
Sehr interessant! Ich kenne das in C++ so, dass gleiche Namen für verschiedene Methoden möglich sind, vorausgesetzt die Methoden verwenden alle unterschiedliche Parameter, so das der Compiler sie auseinander halten kann - das nennt man Überladen. Das scheint in VBA wohl nicht so zu sein, die einzige Ausnahme von der ich bis jetzt weiß sind wohl die Get- und Let-Methoden (nennt man dies dann auch Methoden, oder gibt es eine spezielle Bezeichnung dafür?)
Wörter wie get oder set im Namen dann weglassen kann und trotzdem jederzeit weiß ob nun der Wert gesetzt oder ausgelesen wird.
Wie ist das gemeint, das man jederzeit weiß ob der gesetzt oder ausgelesen wird? Wenn man das get oder let als Präfix des Methodenbezeichners weglässt, ist es doch eigentlich nicht mehr ersichtlich, zumindest was den Bezeichner angeht. Oder meinst Du damit, wenn man z.B. einen Wert setzt eben ein Parameter zugewiesen wird, und beim auslesen eben nicht und damit ersichtlich ist ob gelesen oder geschrieben wird (keine Parameter = auslesen bzw. get, und mit Parameter = setzen bzw. set)
Schönen Gruß
|