Zugriff auf ListObject innerhalb eines Objectes
Übersicht

![]() |
StarGazerBetreff: Zugriff auf ListObject innerhalb eines Objectes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich habe da ein blödes Porblem mit Listen die sich in einem Objekt befinden. Ich möchte gern darauf zugreifen könne mit First und Last, doch es klappt leider nicht. Das BlitzWiki Beispiel hilf einem leider auch nicht weiter, da es dort nur um Listen außerhalb eines Objektes handelt, und klappt bei mir leider nicht ![]() Hoffe es kann mir jemand helfen. Code: [AUSKLAPPEN] Type Street
Field CarList:TList = CreateList() EndType Type Car Field Typ:String EndType s:Street = New Street '-------------------- a:Car = New Car a.Typ = "Audio" ListAddLast s.CarList,a a:Car = New Car a.Typ = "BMW" ListAddLast s.CarList,a a:Car = New Car a.Typ = "Opel" ListAddLast s.CarList,a '-------------------- i:Car = s.CarList.first() FEHLER -> Unable To covert from 'Object' to 'Car' i:TLink = s.CarList.first() FEHLER -> Unable To covert from 'Object' to 'brl.linkedlist.TLink' name:String = i.Typ |
||
![]() |
mahe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst in diesem Fall unbedingt ein Typ-Cast machen:
Code: [AUSKLAPPEN] i:Car = Car( s.CarList.first() )
Außerdem ist Code: [AUSKLAPPEN] s.CarList.AddLast(a)
viel hübscher als Code: [AUSKLAPPEN] ListAddLast s.CarList,a
Dies aber nur nebenbei ![]() |
||
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ, |
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
super, so funktioniert es ![]() Danke aber geht er dabei wirklich nur auf das erste Object dass sich in der "s.CarList" befinden, oder nimmt er das allerste "Car" Object ansich, auch wenn es sich nicht in der Liste befinden sollte ? Die Frage kam mir in den Sin weil Du i:Car = Car machst. (kenne Typ-Cast noch nicht ![]() ![]() PS: ist s.CarList.AddLast(a) sonst irgendwie sinvoller als ListAddLast s.CarList,a (schneller oder so?) ListAddLast s.CarList,a war das erste Beispiel was ich mal irgendwo fand ![]() |
||
![]() |
mahe |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es wird wirklich nur das erste Objekt der entsprechenden Liste zurückgegeben.
Mit Car() wird nur das zurückgegebene Objekt in ein Car-Objekt umgewandelt. In der Liste wird dein Car in einer Variable vom Typ "Object" gespeichert weshalb diese "Umwandlung" nötig ist. "Object" deshalb weil unterschiedlichste Objekte gespeichert werden können. .AddLast ist auf jeden Fall objektorientierter und höchstwahrscheinlich auch etwas schneller. ListAddLast ist eigentlich nur ein "Wrapper" für die Methode AddLast. Im LinkedList-Modul sieht das so aus: Code: [AUSKLAPPEN] Function ListAddFirst:TLink( list:TList,value:Object )
Return list.AddFirst( value ) End Function |
||
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ, |
![]() |
StarGazer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke Dir für die Infos, jetzt verstehe ich das ganze etwas besser. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group