Turinys:
Apibrėžimas - ką reiškia „Call Stack“?
Skambučių krūva C # yra metodų, vadinamų vykdymo metu nuo programos pradžios iki dabartinės ataskaitos vykdymo, pavadinimų sąrašas.
Skambučių rinkinys daugiausia skirtas sekti tašką, į kurį kiekviena aktyvi paprogramė turėtų grąžinti valdymą, kai baigs vykdyti. Skambučių rinkinys veikia kaip priemonė derinimo programoms, kai susekamą metodą galima pavadinti daugiau nei viename kontekste. Tai yra geresnė alternatyva nei sekimo kodo pridėjimas prie visų metodų, vadinančių nurodytą metodą. Kai vartotojo kode bus padaryta išimtis, Common Language Runtime (CLR) panaikins skambučių rinkinį ir ieškos sugavimo bloko, kad būtų galima nustatyti konkretų išimties tipą. Jei nėra tinkamo tvarkytojo, CLR nutraukia paraišką. Taigi skambučių rinkinys naudojamas vykdymo nurodymui nurodyti, kur eiti toliau.
„Techopedia“ paaiškina „Call Stack“
Skambučių rietuvė yra organizuojama kaip „rietuvė“ - duomenų struktūra atmintyje, skirta daiktams saugoti paskutiniu, pirmu, išeinančiu būdu, kad paprogramės skambintojas pastumtų grąžinimo adresą į krūvą ir vadinamą paprogramę, po to, kai baigiate, Nukreipia grįžimo adresą iš skambučių kamino, kad perduotų valdymą tuo adresu.
C # raidėje bet kuri programa prasideda „pagrindiniu“ metodu, kuris savo ruožtu vadina kitus metodus. Kiekvieną kartą paskambinus metodui, metodas pridedamas prie krūvos viršaus ir pašalinamas iš krūvos grįžus skambinančiajam. Be to, bloke deklaruoto kintamojo apimtis nustatoma nuo tada, kai jo vertė yra uždedama ant krūvos (kaip skambučių rinkinio dalis), kol vykdymas palieka bloką, kai kintamasis ir skambučių rinkinys bus iššokti iš krūvos. Taigi rietuvėje palaikomi ir vietiniai kintamieji (reikšmių tipai), ir skambučių rietuvė (rietuvių rėmeliai), kurių dydis rodo programos sudėtingumą.
