Innholdsfortegnelse:
Definisjon - Hva betyr Call Stack?
En anropsstabel, i C #, er listen over navn på metoder som kalles ved kjøretid fra begynnelsen av et program til utførelsen av gjeldende uttalelse.
En anropsstabel er hovedsakelig ment å holde oversikt over punktet som hver aktiv subroutine skal returnere kontrollen når den er ferdig med å utføre. Anropsstabel fungerer som et verktøy for å feilsøke et program når metoden som skal spores kan kalles i mer enn en sammenheng. Dette danner et bedre alternativ enn å legge til sporingskode til alle metoder som kaller den gitte metoden. Når et unntak kastes hvor som helst i brukerkoden, vil Common Language Runtime (CLR) slappe av anropsstabelen og søke etter fangstblokken for å bestemme den spesifikke unntakstypen. Hvis det ikke er noen passende behandler, vil CLR avslutte søknaden. Anropsstabel brukes derfor til å fortelle utførelsesviseren hvor du skal gå videre.
Techopedia forklarer Call Stack
Anropsstabel er organisert som "stabel", en datastruktur i minnet for å lagre elementer på en sist-i-første-ut måte, slik at innringeren til subroutinen skyver returadressen på bunken og den kalte underrutinen, etter endt slutt, spretter returadressen fra anropsstabelen for å overføre kontrollen til den adressen.
I C # begynner ethvert program med en "hoved" -metode, som igjen kaller andre metoder. For hver samtale til en metode legges metoden til toppen av bunken og fjernes fra bunken når den kommer tilbake til den som ringer. Omfanget av en variabel som er deklarert i en blokk, bestemmes også fra tidspunktet for at verdien skyves inn på bunken (som en del av anropsstabelen) til utførelsen forlater blokken når variabelen og anropsstabelen blir sluppet av bunken. Dermed opprettholder stabelen både lokale variabler (verdityper) og anropsstabelen (stabelrammer), hvis størrelse indikerer kompleksiteten til et program.
