C# avalduse kasutamine

C Avalduse Kasutamine



Ressursside, nagu andmebaasiühendused, dokumendivood või võrguühendused, kõrvaldamisel kasutatakse C#-keeles käsku “using”, et tagada asjakohane kõrvaldamine. IDisposable liidesele vastavate objektide haldamine muudab selle lähenemisviisi lihtsamaks. Koodiosa, milles ressurss genereeritakse ja kasutatakse, luuakse siis, kui deklareeritakse mis tahes 'kasutav' lause. Kui plokist väljumiseks kasutatakse tavalist töötlemist või erandit, käivitatakse kohe objekti funktsioon Dispose(), et vabastada kõik kontrollimatud ressursid ja teostada vajalik puhastus. Selles juhendis käsitleme dokumendivoo ressursse C# 'using' lause abil.

Süntaks:

C#-i “using”-lauset kasutatakse ressursside haldamiseks, mida tuleb mugavalt ja ohutult käsutada. See järgib konkreetset süntaksit järgmiselt:

kasutades ( ResourceType ressurss = uus ressursitüüp ( ) ) { // Kood }
  • Märksõna 'kasutamine' kasutatakse lause 'kasutamine' deklareerimiseks.
  • Pärast märksõna 'kasutamine' määrate ressursi tüübi, millega soovite töötada, millele järgneb muutuja nimi, mis tähistab ressurssi plokis. Kvalifitseeruvad kõik objektid, mis teostavad IDisposable liidest. Vajadusel saate plokis oleva ressursiga töötada.
  • Järgmisena kasutatakse muutujale ressursitüübi uue eksemplari määramiseks võrdusmärki (=).
  • Siin kasutatakse uue ressursitüübi objekti loomiseks märksõna 'uus'.
  • Mis tahes täiendavat lähtestamist või seadistamist saab teha uue märksõna järel olevates sulgudes.
  • Lõpuks lisage ressurssi kasutav kood lokkis sulgudesse {}.

Näide 1:

Alustame C# koodi näidetega, et demonstreerida C# 'using' lause kasutamist selles artiklis. Antud kood katab C# programmi, mis loeb tekstifaili sisu, kasutades 'using' lauses klassi 'StreamReader'.







Programm alustab vajalike nimeruumide System ja System.IO importimisega, mis pakuvad klasse sisend/väljundoperatsioonideks ja failikäsitluseks. Programm määratleb klassi nimega 'Dummy'. Klassis 'Dummy' on meetod Main(), mida tuleks alati käsitleda kui mis tahes C# programmi kirjet, et käivitada kogu programm algusest lõpuni.



Meetod Main() algab stringi muutuja 'fp' deklareerimisega ja sellele väärtuse 'test.txt' omistamisega. See tähistab loetava tekstifaili failiteed. Kõigi failide lugemisel tekkida võivate vigadega toimetulemiseks kasutatakse try-catch plokki.



Prooviplokis kasutatakse 'StreamReader' klassi eksemplari loomiseks käsku 'using'. Faili sisu mõistmise ülesanne langeb StreamReaderile. Muutujas 'fp' salvestatud failitee edastatakse 'StreamReaderi' konstruktorile, mis näitab loetavat faili.





Plokis 'kasutamine' uuritakse faili sisu ridade kaupa, kasutades 'while' tsüklit, välja arvatud juhul, kui ilmub dokumendi viimane rida. Silmus loeb rida kasutades 'StreamReaderi' meetodit ReadLine() ja määrab selle stringimuutujale 'l'. Kui rida ei ole null, prinditakse see konsooli Console.WriteLine(l) abil.

Kui faili lõpp on jõutud ja lugemiseks pole enam ridu, suletakse blokist 'kasutamine' ja objekt 'StreamReader' kõrvaldatakse automaatselt lause 'using' tõttu. Püügiplokk aktiveeritakse alati, kui dokumendi lugemisel tekib IOException. Eranditeade saadakse e.Message abil ja konsoolil kuvatakse veateade, kasutades Console.WriteLine().



Programmi täitmine on lõppenud ja kuvatakse konsooli väljund. Eeldades, et fail 'test.txt' on olemas ja sisaldab mitut tekstirida, on selle koodi väljundiks faili sisu, mis prinditakse konsoolile, nagu on näidatud järgmisel lisatud pildil. Iga rida kuvatakse väljundis eraldi:

süsteemi kasutades ;

süsteemi kasutades. IO ;

klassi mannekeen {

staatiline tühine Peamine ( ) {

string fp = 'test.txt' ;

proovi {

kasutades ( StreamReaderi lugeja = uus StreamReader ( fp ) )

{

string l ;

samal ajal ( ( l = lugeja. ReadLine ( ) ) != null )

{

konsool. WriteLine ( l ) ;

}

}

}

püüda ( IOErand e ) {

konsool. WriteLine ( 'Tekkis viga:' + See on. Sõnum ) ;

}

}

}

Märge: Kui faili 'test.txt' ei eksisteeri või failile juurdepääsu või lugemisega on probleeme, käivitatakse püüdmisplokk ja konsoolil kuvatakse tõrketeade, mis näitab konkreetset juhtunud erandit.

Näide 2:

Siin on veel üks lihtne näide, mis demonstreerib C# 'using' lause kasutamist StreamWriteriga andmete faili kirjutamiseks. Siin on koodi selgitus koos selle eeldatava väljundiga. Kood algab 'Dummy' klassi deklaratsiooniga ja 'Main' meetodiga, mis lõpuks käivitab ja lõpetab programmi.

Meetodi “Main” raames deklareeritakse stringi muutuja “fp” ja lähtestatakse see failitee “test.txt” abil. Sellega tähistatakse dokumenti, millele teave on kirjutatud. Dokumendi kirjutamise käigus tekkida võivate võimalike IOEranditega toimetulemiseks on programm suletud proovivõtuplokki.

Prooviploki sees luuakse StreamWriteri objekt nimega 'writer' ja see lähtestatakse lause 'using' abil. StreamWriter vastutab märkide kirjutamise eest faili. Dokumendile lisatakse jaotises „Kasutamine” kirjutusobjekti funktsiooni WriteLine kaudu kaks eraldi sisurida. Kui plokist väljutakse, kutsutakse automaatselt välja StreamWriteri meetod Dispose(), mis tagab, et kõik ootel olevad andmed kirjutatakse faili ja vabastatakse vajalikud ressursid.

Lõpuks, väljaspool 'kasutamise' plokki, 'Andmed edukalt kirjutatud'. konsoolil kuvatakse teade, mis näitab, et dokumendi kirjutamine on edukas ja veatu. Püügiplokk aktiveeritakse, kui dokumendi kirjutamisprotsessi ajal juhtub IOErand. Sel juhul kuvatakse konsoolil veateade koos konkreetse erandi teatega.

süsteemi kasutades ;

süsteemi kasutades. IO ;

klassi mannekeen {

staatiline tühine Peamine ( ) {

string fp = 'test.txt' ;

proovi {

kasutades ( StreamWriteri kirjanik = uus StreamWriter ( fp ) )

{

kirjanik. WriteLine ( 'Tere, C-Sharp!' ) ;

kirjanik. WriteLine ( 'See on testtekst.' ) ;

}

konsool. WriteLine ( 'Andmed edukalt kirjutatud.' ) ;

}

püüda ( IOErand e ) {

konsool. WriteLine ( 'Esines viga: ' + See on. Sõnum ) ;

}

}

}

Kokkuvõttes loob kood käsku 'using' kasutades StreamWriteri objekti, kirjutab faili kaks rida teksti ja seejärel kõrvaldab automaatselt StreamWriteri. Kui kirjutamisoperatsioon õnnestub, genereerib tarkvara eduteate. Vastasel juhul saadab see IOErandi ilmnemisel veateate.

Järeldus

C# avaldus 'kasutamine' pakub praktilist ja turvalist meetodit selgesõnalist kõrvaldamist nõudvate ressursside haldamiseks. Võite garanteerida, et vajalikud puhastusprotseduurid viiakse läbi automaatselt ja vähendada ressursside lekke tõenäosust, lülitades ressursitarbimise plokki 'kasutamine'. See suurendab teie koodi töökindlust.