Hogyan lehet a változokat mindenhol elérni?
C#-ban nincsen eljárás (ez a procedure rendes neve magyarul), csupán olyan függvény, aminek nincs visszatérési értéke (void function).
Amit te akarsz, az az, hogy globálissá teszel egy változót.
Elsőkörben kijelenteném: AZ OOP paradigmában a globális változó létezése lehetetlen, a C# pedig szigorúan OOP paradigmát valósít meg.
Namost, ez nem jelenti azt, hogy amit szeretnél, nem lehet megcsinálni. Hogy hogyan, az egy érdekes kérdés. Ennek a megvalósítása egy dologtól függ: A programod a főosztályra szűkül-e, vagy más osztályokat is implementálsz, amiben elérhetővé akarod tenni a 'globális' változódat?
Ha a programod kizárólag a fő programosztályra szűkül, amiben a main függvényed is van, akkor egyszerűen létrehozol a main függvényen kívül, közvetlenül az osztály definíciójában egy változót. Ezt az osztályon belül mindenhol elérheted majd.
Ha viszont több osztályt is definiálsz a programban, és mindegyikben elérhetővé akarod tenni a változódat, akkor szükséged lesz egy statikus osztályra, amiben statikus adattagként megadhatod. A statikus osztályokat nem példányosítjuk, önmagukban léteznek egyetlen 'példányként', ha úgy tetszik. És ezek bárhonnan elérhetőek, a benne található statikus tagokkal együtt. Így az összes osztályod összes függvénye láthatja majd.
VISZONT! Amit meg akarsz valósítani, az szigorúan ellenemegy az OOP koncepciójának (íme a remek példa, miért ne C#-ot oktassanak első nyelvként), az, hogy bizonyos elemeket globálissá akarsz tenni, és mindenhonnan elérhetővé tenni csak akkor ajánlatos, ha az elengedhetetlenül szükséges valamilyen szoftverarchitektúra megvalósításához. Az OOP-friendly megoldás az lenne, hogy a függvényeidnek megadod a változtatni kívánt tömböt paraméterként, és így a paraméterlistájukon keresztül elérik. (Ha többosztályos megvalósításra törekszel, az egyosztályos esetben rendben van osztályszintű adattagként deklarálni).
Kérdés? :D
Létezik globális és lokális változó.
Hogy mi a különbség a kettő között, annak kell utána olvasnod.
Az előttem szólóra ne hallgass.
Hülyeségeket beszél.
Nyugodtan használj globális változót, változókat, ha kell, csak ne vidd túlzásba. Az OOP elve nem fog sérülni.
Minden változó, amit nem függvényen belül deklarálsz, globális (tehát a programodban bárhol, bármikor elérhető és manipulálható (!)) lesz.
Az összes többi lokális változó, tehát, mint ilyen, csak az adott függvényen belül lesz érvényes. Máshonnan nem is fog látszani, nem lesz még csak olvasható sem.
Itt egy leírás erről:
Ez a te szempontodból lényegtelen. A változók (SZINTE) minden nyelvben így vannak deklarálva.
Amit ott olvasol, az az ismeret neked is megfelel, mivel nem nyelvspecifikus.
"A változók (SZINTE) minden nyelvben így vannak deklarálva.
Amit ott olvasol, az az ismeret neked is megfelel, mivel nem nyelvspecifikus."
De nem a C# nyelvben, mivel itt nincs globális változó... legfeljebb statikus adattag. Megint osztod a saját prédikációdat, aminek semmi köze az aktuális témához.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!