Sisällysluettelo:
Määritelmä - mitä lauseen käyttäminen tarkoittaa?
C-lauseessa oleva käyttölause on lause, joka sisältää "käyttävä" avainsanan ja tarjoaa syntaksin resurssiobjektin käyttöalueen määrittelemiseksi.
Käyttölause on hyödyllinen kohteille, joiden elinajat ovat sen menetelmän tai lohkon sisällä, jossa ne luodaan. Tämä lausunto vähentää koodia, jossa resurssiintensiivisiä toimintoja suoritetaan tarjoamalla yksinkertaisempi syntaksi ja poistamalla tarve useille puheluille resurssien vapauttamiseksi niiden laajuuden lopussa. Koska käyttölauseke yksinkertaistaa virheen luomiseen, puhdistamiseen ja käsittelemiseen tarvittavaa koodia resurssiobjektin käytön aikana, säästökehitys säästää kehitysaikaa ja vaivaa.
Techopedia selittää lausunnon käyttämisen
.NET-kehys on suunniteltu automaattisella muistinhallintaominaisuudella, jolla objektille varattu muisti vapautetaan ei-deterministisessä tilassa aina, kun Common Language Runtime päättää suorittaa roskien keräyksen (GC). Hallitsemattomat resurssit, kuten tiedostokahvat, verkkoyhteydet jne., On kuitenkin vapautettava mahdollisimman nopeasti. Käyttölause antaa kehittäjälle mahdollisuuden määrittää hetki, jolloin nämä rajoitetut resurssit vapautetaan.
Käskylauseke ottaa yhden parametrin, resurssin, jota edustaa luokka tai rakenne, joka toteuttaa System.ID -käyttöliittymän. Ainoa käyttöliittymän kautta toteutettava menetelmä on "Hävitä", joka voi sisältää resurssin puhdistamiseen tarvittavan koodin. Jos tätä menetelmää ei vaadita, GC huolehtii hävittämisestä automaattisesti.
Esimerkiksi käyttölauseketta voidaan käyttää tiedostovirran avaamiseen luomalla System.IO.FileStream-tyyppinen objekti, jota voidaan käyttää käyttävän lauseen koodilohkon rajoissa.
C # -kääntäjä kääntää käyttölausekoodin kolmeen osaan Microsoftin keskikielellä:
- Resurssin hankkiminen resurssin muistin allokointia varten
- "Kokeile" -lohkoon suljetun resurssin käyttö
- Resurssin hävittäminen vapauttamalla se (kutsutaan resurssiobjektin "hävittämismenetelmää") "lopulta" -lohkoon
Tämä määritelmä on kirjoitettu yhteydessä C #
