OO oder Old BB. Oder beides?
Übersicht

![]() |
Suco-XBetreff: OO oder Old BB. Oder beides? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tach.
Seid dem Core 1.03 Update und der Änderung von Bmax ist mir folgendes aufgefallen. Man kann ohne viele umstände seinen Code auf OO und None OO auslegen. Zumindestens was die Handhabung betrifft. Code: [AUSKLAPPEN] Type TTest Field Wert:Int = 0 Method Set(Wert:Int) self.Wert = Wert End Method Method Get:Int() Return self.Wert End Method End Type Local TempObject:Int = CreateTest() SetTest(TempObject,100) Print Get(TempObject) Local TempObject2:TTest = CreateTest() TempObject2.Set(200) Print TempObject2.Get() Release TempObject TempObject2 = Null Print Get(TempObject) Print TempObject2.Get() Function CreateTest:TTest() Return New TTest End Function Function SetTest(Test:TTest,Wert:Int) Test.Set(Wert) End Function Function Get:Int(Test:TTest) Return Test.Get() End Function Wir man hier sieht, erkennt Bmax automatisch ob man jetzt das Object haben will oder es wie im alten BB(Integer Vars) handhaben möchte. Ich finde das ist eine sehr feine Sache und will es hiermit denjenigen mitteilen, die es noch nicht entdeckt haben. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool... war das früher anders? | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Suco-XBetreff: .... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich finde das ist eine sehr feine Sache und will es hiermit denjenigen mitteilen, die es noch nicht entdeckt haben.
Früher war es auch so. Nur wo jetzt Release auf Int umgestellt wurde und ich nach dem Sinn gesucht habe, ist mir das erst aufgefallen. Und sowas fällt einem ja auch nicht direkt ins Auge da es eigentlich unlogisch ist. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
Cool, danke für den Tipp. Ich hab es verstanden seh da aber nicht ganz den Sinn drin. Jemand der es gelernt hat Typen anzusprechen wird doch wohl kaum auf Instanzen über Funktionen zugreifen. Ist irgendwie uncool^^.
Naja, man lernt nie aus. |
||
UltraMixer Professional 3 - Download
QB,HTML,CSS,JS,PHP,SQL,>>B2D,B3D,BP,BlitzMax,C,C++,Java,C#,VB6 , C#, VB.Net |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ganze ging schon früher mit Images
LOCAL x:int=LOADIMAGE(...) LOCAL y:Timage=LOADIMAGE(...) generell sollte man immer das zweite nehmen, weil beim ersten deutlich höherer overhead ist... da wird dann dauernd im Hintergrund "konvertiert" |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Suco-XBetreff: ........ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sinn hat das ganze in erster Linie bei Modulen. So versorgt man die Leute die noch auf das alte BB stehen und es nicht so mit der OOP haben.
Beim speed ist der unterschied Minimal. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Instanzen über Int hat auch ein weiteres Problem: Die Ints müssen intern auf eine Handlingstruktur zugreifen ( vermute Array bzw. Linked List da BM die als ne indexed List implementiert hat ). Bei wenigen Typeinstanzen kein Problem. Bei einem Partikelsystem und oder anderen anzahlintensiven Dingen kann das jedoch "recht" am Speed kratzen wenn du mit vorliebe auf die neuesten Partikel zugreifen würdest zb ( verglichen mit realen Types natürlich nur, nicht langsam im Sinn von total tödlich ![]() Das mit Release war übrigens auch schon immer so, also das es nur für Int Typeinstanzrepresentanten war, nur die Fehlermeldung wenn du es auf echte Types anwenden willst ist neu ( wurde ja vorhin von vielen so angewandt und führte zu Memory Leaks, deshalb die erzwungene Meldung ) Einen Nachteil von Int Handlern gegenüber Typehandlern darf man jedoch nie vergessen: Bei Types motzt der Compiler schon, dass man versucht zuweisungen zu machen die illegal sind. Bei Int rennt man da in einen Runtimeerror, der unter Umständen nur extrem umständlich zu finden ist. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group