Syntaksi:
C# 'using' -käskyä käytetään resurssien hallintaan, jotka on nimenomaisesti hävitettävä kätevästi ja turvallisesti. Se noudattaa tiettyä syntaksia seuraavasti:
käyttämällä ( ResourceType-resurssi = uusi resurssityyppi ( ) ) { // Koodi }- 'using'-avainsanaa käytetään ilmoittamaan 'using'-lause.
- Avainsanan 'using' jälkeen määrität resurssityypin, jota haluat käsitellä, ja sen jälkeen muuttujan nimen, joka edustaa lohkon resurssia. Mikä tahansa esine, joka suorittaa IDisposable-rajapinnan, kelpuutetaan. Voit käyttää resurssia lohkon sisällä tarpeen mukaan.
- Seuraavaksi yhtäläisyysmerkkiä (=) käytetään määrittämään muuttujalle uusi resurssityypin esiintymä.
- Tässä avainsanaa 'uusi' käytetään luomaan uusi resurssityyppinen objekti.
- Mikä tahansa ylimääräinen alustus tai konfigurointi voidaan suorittaa suluissa uuden avainsanan jälkeen.
- Lopuksi kirjoitat resurssia käyttävän koodin aaltosulkeisiin {}.
Esimerkki 1:
Aloitetaan C#-koodiesimerkeillä havainnollistaaksemme C# 'using' -käskyn käyttöä tässä artikkelissa. Annettu koodi kattaa C#-ohjelman, joka lukee tekstitiedoston sisällön käyttämällä 'using'-käskyn 'StreamReader'-luokkaa.
Ohjelma alkaa tuomalla tarvittavat nimiavaruudet System ja System.IO, jotka tarjoavat luokat syöttö/tulostusoperaatioille ja tiedostojen käsittelylle. Ohjelma määrittelee luokan nimeltä 'Dummy'. ”Dummy”-luokan sisällä on Main()-metodi, jota tulee aina käsitellä minkä tahansa C#-ohjelman merkintänä, joka suorittaa koko ohjelman alusta loppuun.
Main()-menetelmä alkaa ilmoittamalla 'fp'-merkkijonomuuttuja ja antamalla sille 'test.txt'-arvon. Tämä edustaa luettavan tekstitiedoston tiedostopolkua. Voit selviytyä kaikista mahdollisista virheistä, joita voi syntyä tiedostoja luettaessa, try-catch-lohkoa käytetään.
Try-lohkossa 'using'-käskyä käytetään luomaan 'StreamReader'-luokan esiintymä. Tiedoston sisällön ymmärtäminen kuuluu 'StreamReaderille'. 'fp'-muuttujaan tallennettu tiedostopolku välitetään 'StreamReader'-konstruktorille osoittaa luettavan tiedoston.
'Käyttö'-lohkon sisällä tiedoston sisältöä tarkastellaan rivi riviltä 'while'-silmukan avulla, ellei dokumentin viimeinen rivi ilmesty. Silmukka lukee rivin 'StreamReaderin' ReadLine()-menetelmällä ja määrittää sen merkkijonomuuttujalle 'l'. Jos rivi ei ole tyhjä, se tulostetaan konsoliin Console.WriteLine(l) -komennolla.
Kun tiedoston loppu on saavutettu ja luettavia rivejä ei ole enää, 'using'-lohkosta poistutaan ja 'StreamReader'-objekti poistetaan automaattisesti 'using'-käskyn vuoksi. Catch-lohko aktivoituu aina, kun asiakirjaa luettaessa syntyy IOException. Poikkeussanoma saadaan käyttämällä e.Messagea, ja virheilmoitus näytetään konsolissa käyttämällä Console.WriteLine()-komentoa.
Ohjelman suoritus päättyy ja konsolin tulos tulee näkyviin. Olettaen, että 'test.txt'-tiedosto on olemassa ja sisältää useita tekstirivejä, tämän koodin tulos on tiedoston sisältö, joka tulostetaan konsoliin seuraavan liitteenä olevan kuvan mukaisesti. Jokainen rivi näytetään erikseen tulosteessa:
järjestelmän avulla ;järjestelmän avulla. IO ;
luokan nukke {
staattinen mitätön Main ( ) {
merkkijono fp = 'testi.txt' ;
yrittää {
käyttämällä ( StreamReader-lukija = uusi StreamReader ( fp ) )
{
merkkijono l ;
sillä aikaa ( ( l = lukija. Lue rivi ( ) ) != tyhjä )
{
Konsoli. WriteLine ( l ) ;
}
}
}
ottaa kiinni ( IOPoikkeus e ) {
Konsoli. WriteLine ( 'Tapahtui virhe: ' + Se on. Viesti ) ;
}
}
}
Huomautus: Jos 'test.txt'-tiedostoa ei ole tai tiedostoon pääsyssä tai lukemisessa on ongelma, catch-lohko suoritetaan ja konsoliin tulee virhesanoma, joka ilmaisee tapahtuneen poikkeuksen.
Esimerkki 2:
Tässä on toinen yksinkertainen esimerkki, joka osoittaa C# 'using' -käskyn käytön StreamWriterin kanssa tietojen kirjoittamiseen tiedostoon. Tässä on koodin selitys ja sen odotettu tulos. Koodi alkaa 'Dummy'-luokan ja 'Main'-menetelmän ilmoituksella, joka lopulta aloittaa ja lopettaa ohjelman.
'Main'-menetelmässä 'fp'-merkkijonomuuttuja ilmoitetaan ja alustetaan 'test.txt'-tiedostopolulla. Tämä edustaa asiakirjaa, johon tiedot on kirjoitettu. Jotta voidaan käsitellä kaikkia mahdollisia IOExceptioniä, joita saattaa syntyä koko asiakirjan kirjoitusprosessin aikana, ohjelma on suljettu try-catch-lohkoon.
Try-lohkon sisällä luodaan StreamWriter-objekti nimeltä 'writer', joka alustetaan 'using'-käskyllä. StreamWriter vastaa merkkien kirjoittamisesta tiedostoon. Kaksi erillistä sisältöriviä lisätään dokumenttiin 'käyttö'-osion sisällä kirjoitusobjektin WriteLine-toiminnon kautta. Kun lohko on poistunut, StreamWriterin Dispose()-menetelmä kutsutaan automaattisesti, mikä varmistaa, että kaikki odottavat tiedot kirjoitetaan tiedostoon ja tarvittavat resurssit vapautetaan.
Lopuksi 'käyttö'-lohkon ulkopuolella 'Data kirjoitettu onnistuneesti'. konsolissa näkyy viesti, joka osoittaa, että asiakirjan kirjoitustoiminto on onnistunut ja virheetön. Catch-lohko aktivoituu, jos jokin IOException tapahtuu asiakirjan kirjoitusprosessin aikana. Siinä tapauksessa konsolissa näkyy virheilmoitus ja tietty poikkeusviesti.
järjestelmän avulla ;järjestelmän avulla. IO ;
luokan nukke {
staattinen mitätön Main ( ) {
merkkijono fp = 'testi.txt' ;
yrittää {
käyttämällä ( StreamWriter-kirjoittaja = uusi StreamWriter ( fp ) )
{
kirjailija. WriteLine ( 'Hei, C-Sharp!' ) ;
kirjailija. WriteLine ( 'Tämä on testiteksti.' ) ;
}
Konsoli. WriteLine ( 'Tiedot kirjoitettu onnistuneesti.' ) ;
}
ottaa kiinni ( IOPoikkeus e ) {
Konsoli. WriteLine ( 'Tapahtui virhe: ' + Se on. Viesti ) ;
}
}
}
Yhteenvetona voidaan todeta, että koodi luo StreamWriter-objektin käyttämällä 'using'-käskyä, kirjoittaa kaksi riviä tekstiä tiedostoon ja hävittää sitten automaattisesti StreamWriterin. Jos kirjoitustoiminto onnistuu, ohjelmisto luo onnistumisviestin. Muussa tapauksessa se lähettää virheviestin, jos IOException tapahtuu.
Johtopäätös
C# 'using' -lause tarjoaa käytännöllisen ja turvallisen tavan hallita resursseja, jotka vaativat nimenomaista hävittämistä. Voit taata, että tarvittavat puhdistustoimenpiteet suoritetaan automaattisesti ja vähentää resurssien vuotojen todennäköisyyttä sisällyttämällä resurssien kulutuksen 'käyttö'-lohkoon. Tämä lisää koodisi luotettavuutta.