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
98
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
En usko et meistä tulee jotain
Se ei kuitenkaan estä toivomasta et tulisi. Toivon et voitas suudella ja se sais asioita loksahtamaan paikoilleen. Jutel102640- 911976
Eini paljastaa nuorekkuutensa salaisuuden - Tämä nousee framille: "Se on pakko, että jaksaa!"
Discokuningatar Eini on täyttänyt upeat 64 vuotta. Lavoilla ja keikoilla nähdään entistä vapautuneempi artisti, joka ei391511- 2601398
Yli puolella maahanmuuttajalapsista ei ole tietoja ja taitoja, joilla selviää yhteiskunnassa
Miksi Suomeen otetaan väkeä jolla on älyvajetta? https://www.hs.fi/politiikka/art-2000010730220.html2731038- 67933
Olen J-mies
Jos kerrot sukunimeni alkukirjaimen, ja asuinpaikkakuntani. Lupaan ottaa yhteyttä sinuun.47891- 55864
Ei sitten, ei olla enää
Missään tekemisissä. Unohdetaan kaikki myös se että tunsimme. Tätä halusit tämän saat. J miehelle. Rakkaudella vaalea na77860- 44775