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
130
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
- 1077763
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?1126026- 835177
- 1394546
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan113220- 592997
- 582938
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102454- 612437
Hei........
Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.562066