Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Fedaykin am 12.01.04 - 16:13:21
-
Hallo zusammen
Würde gerne eine Klasse bauen mit einer Property vom Type List as String. Doch das geht glaub ich leider nicht. Oder? :'(
Was würdet Ihr in so einem Fall so machen?
Property vom Type String Array bauen?
Public Membervariable vom Type List as String?
oder sonst was? ::)
Gruss
Fedaykin
-
Ohne jetzt genauer reinzuschauen würd ich mal schätzen, dass man da wohl oder übel mit Variant arbeite nuss - denke ich mal
-
was geht denn da genau nicht?
-
ich vermute mal, du kannst das nicht als Rückgabewert einer Funktion haben, oder?
sowas in der Art
Class X
Private liste List as string
Public Function getList as ' Tja und hier hörts bei Notes auf.
End Class
was du tun könntest: eine eigene Wrapper-Klasse für diesen Datentyp schreiben, weil Klassennamen kann man sehr wohl als Rückgabewert verwenden
schönes Beispiel gibts hier: Using the object oriented... (http://www-10.lotus.com/ldd/today.nsf/0/d330436f7afdd43888256ad80064570f?OpenDocument)
natürlich könntest du auch einen Variant verwenden, das ist aber IMHO nicht so schön.
-
Das ist natürlich auch eine Idee, eine eigene Class dafür zu verwenden. Der Artikel von Bruce ist übrigens wirklich toll und der Mann, der ihn geschrieben hat auch (sass bei mir im Vortrag als ich an der letzten LS über OO gesprochen habe :D )
-
Erstmal Danke zusammen
Eigene Wrapper-Klasse für diesen Datentyp schreiben klingt schon mal recht gut und werd ich probieren. :D
Denn den Datentype Variant :'( versuche ich zu vermeiden. ;)
Gruss
Fedaykin
-
mich würde interessieren, wie deine Klasse aussieht (nur Attribute und Funktionsköpfe, kein richtiger Code). Wär cool, wenn du ein Teilergebnis posten könntest.
-
Also wird vermutlich was in der Richtung. Wobei das eigentliche Problem warscheinlich doch nur über Variant zu lösen ist. :'(
Public Class clsstrListItem
Sub New(Key As String,Value As String)
Property Get Key As String
Property Set Key As String
Property Get Value As String
Property Set Value As String
End Class
Public Class clsstrList
Function Add(Key As String,Value As String) As clsstrListItem
Sub Remove(Key As String)
Property Get Exist(Key) As Long
Property Get Count As Long
Property Get Value(Key) As String
Property Get Items As Variant :'(
End Class
Wäre da doch schön sowas wie
Property Get Items List as clsstrListItem ;D
Geht aber leider nicht :'( und so eine Property brauche ich ja, denn wie könnte ich das Teil denn sonst mit ForAll durchlaufen.
Gruss
Fedaykin
-
du könntest eine getFirstItem und eine getNextItem-Methode machen oder eine getNthItem
so wie die NotesDocumentCollection z.B.
aber das ist natürlich auch eine Aufwand/Nutzen-Frage, ob du sowas machst...
-
Wenn Du ForAll verwenden willst, geht es nicht ohne Variant. Ich vermute mal, das liegt irgendwie an der dahinterliegenden Implementation, die uns natürlich nicht zugänglich ist. Will man das nicht, ist die Anregung von Thomas der Schlüssel.