int a;
{
int a; <- ei voi määrittää, koska a määritelty ylemmässä blokissa
}
VERTAA:
{
int a;
}
int a; <- MIKSI ei voi määrittää, vaikka a on määritetty alablokissa eikä sen pitäisi näkyä tällä tasolla ollenkaan????
Miksi? (C sharp)
3
126
Vastaukset
- dsydf
Koska kaikki saman metodin sisällä määritetyt muutujat kuuluvat samaan määrittelyalueeseen (declaration space) . Tämä on vain hyvä asia, koska vähentää sekaantumisen riskiä. Näkyvyysalue (scope) taas määrittää, missä lohkoissa muuttuja näkyy.
- pushpop
C# on sen verran typerä ettei se ymmärrä kuten aito C-kieli, että kaarisulkeiden sisällä a-muuttuja on uusi tapaus, vanha menee pinoon, kun kaarisulkeiden sisältä tullaan pois, pinosta palautuu käyttöön takaisin edellinen a-muuttuja. Tämä sama puutos on myös PHP:ssa. JavaScriptin uusimmassa inkarnaatiossa taitaa olla let-määrite, joka ajaa saman asian kuin C-kielessä?
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod225134- 254308
- 272461
- 342234
- 371998
- 151908
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191587- 121521
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons211247Kerranki asiat oikein
Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa101164