Verwendung Global in Type
Übersicht

![]() |
Rick_72Betreff: Verwendung Global in Type |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen,
was bringt mir eigentlich die Verwendung von Globals in Types ausser einer weiteren (besseren) Strukturierung des Programms? Als Beispiel soll mal dienen (nur rudimentär, es geht um's Prinzip; klar kann ich auch in Methoden packen usw., aber ..): Code: [AUSKLAPPEN] Global myList:TList
Type myType Field x:Int End Type myList = New TList Test:myType = New myType myList.AddLast(Test) Innerhalb der Klasse: Code: [AUSKLAPPEN] Type myType
Global myList:TList Field x:Int End Type Test:myType = New myType Test.myList = New TList Test.myList.AddLast(Test) Deutlich ist der Unterschied im Aufruf der Liste. Aber ist das alles? Übersehe ich etwas? Vielen Dank für Eure Hilfe! |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du es mit Global machst, gibt es eine Liste, in die du jede Instanz des Types packen kannst. Wenn du es aber lokal mit Field machst, dann hat jede Instanz ihre eigene Liste.
EDIT: oh, in deinem Beispiel wäre der unterschiedliche Aufruf der einzige Unterschied. Allerdings ist die zweite Variante einfach sauberer und übersichtlicher. So könntest du bei der zweiten Variante in deinem Programm noch eine andere "myList" benutzen, da der Variablenname nicht belegt wird. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
Rick_72 |
![]() Antworten mit Zitat ![]() |
---|---|---|
D2006 hat Folgendes geschrieben: Wenn du es mit Global machst, gibt es eine Liste, in die du jede Instanz des Types packen kannst. Wenn du es aber lokal mit Field machst, dann hat jede Instanz ihre eigene Liste.
Ja, schon klar. Aber wo ist der Unterschied durch die unterschiedliche Notation? Einmal deklariere ich Global *innerhalb* der Klasse, das andere mal *ausserhalb*. Welchen Unterschied macht das (ausserden oben beschriebenen in der Syntax)? |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vor allem muss man nicht tausend verschiedene Listennamen verwenden. TVogel.list, TAuto.list, TBaum.list - überall sieht man sofort wo was drin ist. Bei längeren Programmen ist alles hübsch im Type geordnet und man findet alles was dazu gehört auch genau da. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Rick_72 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat Folgendes geschrieben: Vor allem muss man nicht tausend verschiedene Listennamen verwenden. TVogel.list, TAuto.list, TBaum.list - überall sieht man sofort wo was drin ist. Bei längeren Programmen ist alles hübsch im Type geordnet und man findet alles was dazu gehört auch genau da.
OK, dann ist wie vermutet der einzige (wesentliche) Unterschied die Notation sprich die bessere Lesbarkeit. Danke für die Hilfe! |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was man nebenbei auch gleich machen kann:
BlitzMax: [AUSKLAPPEN] Type myType So muss man nur noch Objekte mit New erschaffen und schon sind sie auch in der Liste. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist nicht nur notation sondern die basis von OOP. Wenn du oop nutzt und dein code nicht sauber gekapselt ist, hättest du dir OOP auch gleich sparen können. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
Global bezeichnet statische Variablen, die Variablen gehören zu dem Type und jedes Objekt kann sie benutzen.
Lokale Variablen gehören einer jeden Instanz eines Types. Ist dasselbe mit method und function. Functions sind statisch, gehören also dem Type. Methods gehören zu jeder Instanz des Types. |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group