Uporaba izjave C#

Uporaba Izjave C



Pri odstranjevanju virov, kot so povezave z bazo podatkov, dokumentni tokovi ali omrežne povezave, se uporabi stavek »uporaba« v jeziku C#, da se zagotovi ustrezno odstranjevanje. Upravljanje objektov, ki so skladni z vmesnikom IDisposable, je s tem pristopom poenostavljeno. Odsek kode, v katerem je vir ustvarjen in uporabljen, se ustvari, ko je deklariran kateri koli stavek »uporaba«. Če se za izhod iz bloka uporabi običajna obdelava ali izjema, se nemudoma prikliče funkcija objekta Dispose(), da sprosti vse nenadzorovane vire in izvede morebitno potrebno čiščenje. V tem priročniku bomo obravnavali vire dokumentnega toka z uporabo stavka C# »uporaba«.

Sintaksa:

Stavek C# »using« se uporablja za upravljanje virov, ki jih je treba izrecno odstraniti, priročno in varno. Sledi določeni sintaksi, kot sledi:

uporabo ( vir ResourceType = nov ResourceType ( ) ) { // Koda }
  • Ključna beseda »using« se uporablja za deklaracijo izjave »using«.
  • Po ključni besedi »uporaba« določite vrsto vira, s katerim želite delati, čemur sledi ime spremenljivke, ki predstavlja vir v bloku. Kvalificira se vsak objekt, ki izvaja vmesnik IDisposable. Po potrebi lahko delujete z virom znotraj bloka.
  • Nato se uporabi znak enačaja (=), da se spremenljivki dodeli nov primerek tipa vira.
  • Tukaj je ključna beseda »novo« uporabljena za ustvarjanje novega predmeta vrste vira.
  • Vsako dodatno inicializacijo ali konfiguracijo je mogoče izvesti v oklepajih za novo ključno besedo.
  • Na koncu priložite kodo, ki uporablja vir, v zavite oklepaje {}.

Primer 1:

Začnimo s primeri kode C#, da pokažemo uporabo stavka C# »using« v tem članku. Podana koda pokriva program C#, ki bere vsebino besedilne datoteke z uporabo razreda »StreamReader« znotraj stavka »using«.







Program se začne z uvozom potrebnih imenskih prostorov, System in System.IO, ki nudita razrede za vhodno/izhodne operacije in ravnanje z datotekami. Program definira razred, imenovan 'Dummy'. Znotraj razreda »Dummy« je metoda Main(), ki jo je treba vedno obravnavati kot vnos za kateri koli program C# za izvajanje celotnega programa od začetka do konca.



Metoda Main() se začne z deklaracijo spremenljivke niza »fp« in ji dodeli vrednost »test.txt«. To predstavlja pot do besedilne datoteke, ki jo želite prebrati. Za obvladovanje vseh možnih napak, ki se lahko pojavijo pri branju datotek, se uporablja blok poskusi-ulovi.



Znotraj poskusnega bloka se za ustvarjanje primerka razreda »StreamReader« uporabi stavek »using«. Naloga razumevanja vsebine iz datoteke pripada »StreamReaderju«. Pot datoteke, ki je shranjena v spremenljivki »fp«, se posreduje konstruktorju »StreamReader«, ki označuje datoteko, ki jo je treba prebrati.





Znotraj bloka »uporaba« se vsebina datoteke pregleda vrstico za vrstico z uporabo zanke »while«, razen če se prikaže zadnja vrstica dokumenta. Zanka prebere vrstico z uporabo metode ReadLine() programa »StreamReader« in jo dodeli spremenljivki niza »l«. Če vrstica ni ničelna, se natisne na konzolo z uporabo Console.WriteLine(l).

Ko je dosežen konec datoteke in ni več vrstic za branje, se blok »using« zapusti in objekt »StreamReader« se samodejno odstrani zaradi izjave »using«. Blok catch se aktivira vsakič, ko se med branjem dokumenta pojavi izjema IOException. Sporočilo o izjemi se pridobi z uporabo e.Message, sporočilo o napaki pa se prikaže na konzoli z uporabo Console.WriteLine().



Izvajanje programa se zaključi in prikaže se izhod konzole. Ob predpostavki, da datoteka »test.txt« obstaja in vsebuje več vrstic besedila, je rezultat te kode vsebina datoteke, ki je natisnjena na konzoli, kot je prikazano na naslednji priloženi sliki. Vsaka vrstica je v izpisu prikazana ločeno:

z uporabo sistema ;

z uporabo sistema. IO ;

razred Dummy {

statična praznina Glavni ( ) {

niz fp = 'test.txt' ;

poskusi {

uporabo ( Bralnik StreamReader = novi StreamReader ( fp ) )

{

niz l ;

medtem ( ( l = bralec. ReadLine ( ) ) != nič )

{

Konzola. WriteLine ( l ) ;

}

}

}

ulov ( IOException e ) {

Konzola. WriteLine ( 'Prišlo je do napake: ' + Je. Sporočilo ) ;

}

}

}

Opomba: Če datoteka »test.txt« ne obstaja ali obstaja težava z dostopom do datoteke ali branjem, se izvede blok catch in na konzoli se prikaže sporočilo o napaki, ki označuje posebno izjemo, ki se je zgodila.

Primer 2:

Tukaj je še en preprost primer, ki prikazuje uporabo stavka C# »using« s StreamWriterjem za zapisovanje podatkov v datoteko. Tukaj je razlaga kode skupaj z njenim pričakovanim rezultatom. Koda se začne z deklaracijo razreda 'Dummy' in metode 'Main', ki bo na koncu zagnala in končala program.

Znotraj metode »Main« je spremenljivka niza »fp« deklarirana in inicializirana s potjo datoteke »test.txt«. Dokument, na katerem so zapisane informacije, predstavlja to. Za obravnavo morebitnih izjem IOException, ki bi se lahko pojavile med postopkom pisanja dokumenta, je program zaprt v bloku poskusi-ulovi.

Znotraj poskusnega bloka se ustvari in inicializira objekt StreamWriter z imenom 'writer' s stavkom 'using'. StreamWriter je odgovoren za pisanje znakov v datoteko. Dve ločeni vrstici vsebine sta dodani dokumentu znotraj razdelka »uporaba« prek funkcije WriteLine objekta pisca. Ko je blok zapuščen, se samodejno pokliče metoda Dispose() StreamWriterja, ki zagotovi, da se vsi čakajoči podatki zapišejo v datoteko in da se sprostijo potrebni viri.

Nazadnje, zunaj bloka »uporaba«, je »Podatki uspešno zapisani«. Na konzoli se prikaže sporočilo, ki dokazuje, da je operacija pisanja dokumenta uspešna in brez napak. Blok catch se aktivira, če se med postopkom pisanja dokumenta zgodi katera koli izjema IOException. V tem primeru se na konzoli prikaže sporočilo o napaki skupaj s posebnim sporočilom o izjemi.

z uporabo sistema ;

z uporabo sistema. IO ;

razred Dummy {

statična praznina Glavni ( ) {

niz fp = 'test.txt' ;

poskusi {

uporabo ( Pisatelj StreamWriter = nov StreamWriter ( fp ) )

{

pisatelj. WriteLine ( 'Pozdravljen, C-Sharp!' ) ;

pisatelj. WriteLine ( 'To je testno besedilo.' ) ;

}

Konzola. WriteLine ( 'Podatki so bili uspešno zapisani.' ) ;

}

ulov ( IOException e ) {

Konzola. WriteLine ( 'Prišlo je do napake: ' + Je. Sporočilo ) ;

}

}

}

Če povzamemo, koda ustvari objekt StreamWriter z uporabo izjave »using«, zapiše dve vrstici besedila v datoteko in nato samodejno odstrani StreamWriter. Če operacija pisanja uspe, programska oprema ustvari sporočilo o uspehu. V nasprotnem primeru odda sporočilo o napaki, če pride do kakršne koli IOException.

Zaključek

Stavek C# »using« ponuja praktično in varno metodo upravljanja virov, ki zahtevajo eksplicitno odstranitev. Zagotovite lahko, da se potrebni postopki čiščenja izvedejo samodejno in zmanjšate verjetnost uhajanja virov tako, da porabo virov vključite v blok »uporaba«. To poveča zanesljivost vaše kode.