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
78
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
Kyllä suoraan
Sanottua vi.tu.taa. Miksi en toiminut silloin. Sama kun olisi heittänyt smagardin menemään.691880Voisitko nainen kertoa mulle
Tykkäätkö sä musta, vai unohdanko koko jutun? Mä en viitti tulla sinne enää, ettei mua pidetä jonain vainoajana, ku sun1641499- 891279
- 1251265
Miehelle naiselta
Ajattelen sinua aina, en jaksa enää. Ja luulin, että pidit minusta, mutta silloin olisit tehnyt jotain. Mutta sinä et te491190Iäkkäät asiakkaat ärsyttävät kaupoissa
Miksei Kela järjestä palvelua, jolla toimittaisivat ostokset suoraan ikäihmisille? https://www.is.fi/taloussanomat/art-270999- 75952
- 107905
Olen syvästi masentunut
En oikein voi puhua tästä kenenkään kanssa. Sillä tavalla että toinen ymmärtäisi sen, miten huonosti voin. Ja se että mi104857Nainen, millainen tilanne oli
kun huomasit ihastuneesi häneen oikein kunnolla. Missä tapahtui ja milloin46705