C#-lausekkeen käyttö

C Lausekkeen Kaytto



Hävitettäessä resursseja, kuten tietokantayhteyksiä, asiakirjavirtoja tai verkkoyhteyksiä, käytetään C#-kielen 'using' -käskyä asianmukaisen hävittämisen varmistamiseksi. IDisposable-rajapinnan mukaisten objektien hallinta yksinkertaistuu tällä lähestymistavalla. Koodiosio, jossa resurssi luodaan ja käytetään, luodaan, kun mikä tahansa 'using'-käsky ilmoitetaan. Jos lohkosta poistumiseen käytetään normaalia prosessointia tai poikkeusta, objektin Dispose()-toiminto kutsutaan välittömästi vapauttamaan hallitsemattomat resurssit ja suorittamaan tarvittavat puhdistukset. Tässä oppaassa käsittelemme dokumenttivirran resursseja käyttämällä C# 'using' -käskyä.

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.