![]() |
Globale Variablen
Hallo,
ich lese hier immer wieder, dass es "gefährlich" ist mit globalen Variablen zu arbeiten. Wenn ich einen Wert(string) global benötige, ist es besser eine globale Variable zu vereinbaren oder einfach ein unsichtbares Label zu nehmen, wo ich den String reinschreibe? |
Re: Globale Variablen
Zitat:
|
Re: Globale Variablen
wobei du nochmal genau überprüfen solltest, ob der string wirklich global sein muss!
Meistens reicht eine function! |
Re: Globale Variablen
@toms: Hast du auch eine gute Begründung? :)
@nicolai: Ja muss global sein. |
Re: Globale Variablen
Meinst du eine Begründung dafür, dass man kein Label nehmen sollte? Diese Begründung liegt doch auf der HAnd! Es ist einfach unsaubere Progrmmierung, wenn man über ein unsichtbares Label strings weiter gibt, schließlich sind dafür ja die Variablen da! Sonst hätte man die ja grnicht erst "erfinden" müssen!
|
Re: Globale Variablen
Ein unsichtbares Label ist wahrscheinlich die grauenhafteste Lösung, die es gibt :wink:
|
Re: Globale Variablen
Zitat:
Es gibt ja auch als dritten Weg noch die tag-Eigenschaft, allerdings nur für Integer Werte. Wäre die dann nicht auch "unsauber"? |
Re: Globale Variablen
Ich sag ja guck dir nochmal an, wofür du ihn brauchst, oft reicht wie gesagt eine function!
|
Re: Globale Variablen
Zitat:
Könntest die Variable aber auch in die Form-Klasse reintun. Beschreibe aber mal genauer, für was du die Variable brauchst. |
Re: Globale Variablen
Zitat:
|
Re: Globale Variablen
Warum soll den eine globale Variable schlechter Programmierstil sein? :roll: Wenn ich Daten auf zwei Forms oder auch nur in unterschiedlichen Buttons o.ä. brauche, ist das doch der einfachste Weg. Wo liegt denn das Problem? :gruebel:
Tox |
Re: Globale Variablen
Zitat:
Aber eins erkenne ich an dieser Aussage! Das du noch kein sehr großes Programm geschrieben hast (ich kann mich auch irren)! |
Re: Globale Variablen
Aber du musst doch eh die function aufrufen um zu sehen, wie der momentane Status ist!
Wie wird dieser denn dann weiter verwendet? |
Re: Globale Variablen
Zitat:
Das hatte ich jetzt erst an der Hochschule! Vermeidung von Globalen Variablen hat etwas mit Information Hidding zu tun! Ein Konzept eines "modern" geschriebenen Programmes! |
Re: Globale Variablen
Zitat:
Edit: Sprich, dieser ermittelte Status wird im Programm an anderen Stellen weiterverarbeitet. |
Re: Globale Variablen
Du kannst die finction doch auch erst aufrufen, wenn das ergebnis auch tatsächlich angezeigt wird, oder?
|
Re: Globale Variablen
Zitat:
|
Re: Globale Variablen
Zitat:
Delphi-Quellcode:
Sinn:
unit ...
interface procedure FragNachStatus; function GetStatus : Integer; implementation var iState : Integer = 0; procedure FragNachStatus; ... function GetStatus : Integer; begin Result := iState; end; end. -Klare Schnittstelle die gewisse Änderungen zuläst -Die Variable ist Schreib geschützt -Man kann sich sicher sein das nur die Funktionen darauf zugreifen -Später Änderungen lassen sich besser überblicken |
Re: Globale Variablen
[Durchgestrichen]@neolithos: Das leuchtet mir schon ein. Doch ich will meinen Ergebniswert nicht immer wieder neu mit einer Funktion abfragen, das geht doch auf die Leistung.[/Durchgestrichen]
Edit: Oh sorry. Habe nicht genau gelesen. :oops: Das ist eine gute Idee. Aber iState ist doch auch eine globale Variable? |
Re: Globale Variablen
Entweder als Paramneter übergeben oder wenn das auch zu umständlich ist, zu mindest als Feld der Form-Klasse. Die gefahr bei globalen Variablen liegt darin, dass man echt Probleme bekommt, wenn sie nicht den erwarteten Wert enthält, dann geht nämlich die Sucherei los, wo dieser Wert geändert wird.
|
Re: Globale Variablen
Ja aber der Vorteil an dieser Globalen Variable ist, dass sie nur innerhalb dieser Unit sichtbar ist.
Keine andere Unit hat auf sie Zugriff. Dies ist in bei mir keine Globale Variable. |
Re: Globale Variablen
@neolithos
Da habe ich damals in der Schule etwas anderes gelernt. :) @luckie Wenn man nach Luckie geht, dann sind globale Variablen rein "Virtual" . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz