C# korištenje naredbe

C Koristenje Naredbe



Prilikom odlaganja resursa kao što su veze s bazom podataka, tokovi dokumenata ili mrežne veze, koristi se naredba 'using' u jeziku C# kako bi se osiguralo odgovarajuće odlaganje. Upravljanje objektima koji su u skladu s IDisposable sučeljem ovim je pristupom jednostavnije. Odjeljak koda u kojem se resurs generira i koristi stvara se kada se deklarira bilo koja izjava 'upotreba'. Ako se za izlaz iz bloka koristi normalna obrada ili iznimka, odmah se poziva funkcija objekta Dispose() kako bi se oslobodili svi nekontrolirani resursi i provelo potrebno čišćenje. U ovom ćemo vodiču pokriti resurse toka dokumenata uz korištenje naredbe C# 'using'.

Sintaksa:

C# naredba “using” koristi se za upravljanje resursima koje je potrebno eksplicitno odložiti na pogodan i siguran način. Slijedi sljedeću specifičnu sintaksu:

korištenjem ( ResourceType resurs = novi ResourceType ( ) ) { // Kod }
  • Ključna riječ 'using' koristi se za deklariranje izjave 'using'.
  • Nakon ključne riječi 'using', navodite vrstu resursa s kojom želite raditi, nakon čega slijedi naziv varijable koja predstavlja resurs unutar bloka. Svaki objekt koji provodi IDisposable sučelje se kvalificira. Po potrebi možete djelovati na resursu unutar bloka.
  • Zatim se znak jednakosti (=) koristi za dodjeljivanje nove instance tipa resursa varijabli.
  • Ovdje se ključna riječ 'novo' koristi za generiranje novog objekta tipa resursa.
  • Bilo kakva dodatna inicijalizacija ili konfiguracija može se izvršiti unutar zagrada nakon nove ključne riječi.
  • Na kraju, prilažete kod koji koristi resurs unutar vitičastih zagrada {}.

Primjer 1:

Započnimo s primjerima C# koda kako bismo demonstrirali korištenje naredbe C# 'using' u ovom članku. Navedeni kod pokriva C# program koji čita sadržaj tekstualne datoteke pomoću klase 'StreamReader' unutar izjave 'using'.







Program počinje uvozom potrebnih imenskih prostora, System i System.IO, koji pružaju klase za ulazno/izlazne operacije i rukovanje datotekama. Program definira klasu pod nazivom 'Dummy'. Unutar klase 'Dummy' postoji metoda Main() koju uvijek treba tretirati kao unos za bilo koji C# program za izvođenje cjelokupnog programa od početka do kraja.



Metoda Main() počinje deklariranjem varijable niza “fp” i dodjeljivanjem vrijednosti “test.txt”. Ovo predstavlja putanju tekstualne datoteke koju treba pročitati. Kako bi se nosili sa svim mogućim pogreškama koje se mogu pojaviti prilikom čitanja datoteka, koristi se blok try-catch.



Unutar bloka try, izjava 'using' koristi se za stvaranje instance klase 'StreamReader'. Zadatak razumijevanja sadržaja iz datoteke pripada 'StreamReaderu'. Putanja datoteke koja je pohranjena u varijabli 'fp' prosljeđuje se konstruktoru 'StreamReader' koji označava datoteku koju treba pročitati.





Unutar 'using' bloka, sadržaj datoteke se ispituje redak po redak pomoću 'while' petlje osim ako se ne pojavi posljednji redak dokumenta. Petlja čita red koristeći ReadLine() metodu “StreamReader” i dodjeljuje ga string varijabli “l”. Ako linija nije null, ispisuje se na konzolu pomoću Console.WriteLine(l).

Kada se dosegne kraj datoteke i više nema redaka za čitanje, izlazi se iz bloka 'using' i objekt 'StreamReader' se automatski odbacuje zbog naredbe 'using'. Blok catch se aktivira kad god se pojavi IOException tijekom čitanja dokumenta. Poruka o iznimci dobiva se pomoću e.Message, a poruka o pogrešci prikazuje se na konzoli pomoću Console.WriteLine().



Izvršenje programa je završeno i prikazan je izlaz konzole. Pod pretpostavkom da datoteka 'test.txt' postoji i sadrži nekoliko redaka teksta, izlaz ovog koda je sadržaj datoteke koji se ispisuje na konzoli kao što je prikazano na sljedećoj priloženoj slici. Svaki redak je zasebno prikazan u izlazu:

pomoću sustava ;

pomoću sustava. IO ;

klasa Dummy {

statički poništiti Glavni ( ) {

string fp = 'test.txt' ;

probati {

korištenjem ( Čitač StreamReader = novi StreamReader ( fp ) )

{

niz l ;

dok ( ( l = čitač. ReadLine ( ) ) != ništavan )

{

Konzola. WriteLine ( l ) ;

}

}

}

ulov ( IOException e ) {

Konzola. WriteLine ( 'Došlo je do pogreške: ' + To je. Poruka ) ;

}

}

}

Bilješka: Ako datoteka 'test.txt' ne postoji ili postoji problem s pristupom datoteci ili čitanjem, blok catch se izvršava, a na konzoli se prikazuje poruka o pogrešci koja ukazuje na određenu iznimku koja se dogodila.

Primjer 2:

Evo još jednog jednostavnog primjera koji demonstrira korištenje naredbe C# 'using' sa StreamWriterom za pisanje podataka u datoteku. Evo objašnjenja koda zajedno s njegovim očekivanim rezultatom. Kod počinje deklaracijom klase “Dummy” i metode “Main” koja će na kraju pokrenuti i završiti program.

Unutar metode “Main”, varijabla niza “fp” deklarirana je i inicijalizirana s putanjom datoteke “test.txt”. Ovo predstavlja dokument na kojem su zapisane informacije. Kako bi se pozabavili svim mogućim IOExceptionima koji bi se mogli pojaviti tijekom procesa pisanja dokumenta, program je zatvoren u bloku try-catch.

Unutar bloka try, StreamWriter objekt pod nazivom 'writer' se stvara i inicijalizira pomoću naredbe 'using'. StreamWriter je odgovoran za pisanje znakova u datoteku. Dva odvojena retka sadržaja dodaju se dokumentu unutar odjeljka 'upotreba' putem funkcije WriteLine objekta pisca. Nakon što se izađe iz bloka, automatski se poziva metoda Dispose() StreamWritera koja osigurava da se svi podaci na čekanju zapišu u datoteku i da su potrebni resursi oslobođeni.

Konačno, izvan bloka 'upotreba', 'Podaci su uspješno napisani.' Na konzoli se prikazuje poruka koja pokazuje da je operacija pisanja dokumenta uspješna i bez grešaka. Blok catch se aktivira ako se dogodi bilo koja IOException tijekom procesa pisanja dokumenta. U tom slučaju, na konzoli se prikazuje poruka o pogrešci zajedno s posebnom porukom o iznimci.

pomoću sustava ;

pomoću sustava. IO ;

klasa Dummy {

statički poništiti Glavni ( ) {

string fp = 'test.txt' ;

probati {

korištenjem ( StreamWriter pisac = novi StreamWriter ( fp ) )

{

pisac. WriteLine ( 'Zdravo, C-Sharp!' ) ;

pisac. WriteLine ( 'Ovo je probni tekst.' ) ;

}

Konzola. WriteLine ( 'Podaci su uspješno upisani.' ) ;

}

ulov ( IOException e ) {

Konzola. WriteLine ( 'Došlo je do pogreške: ' + To je. Poruka ) ;

}

}

}

Ukratko, kod stvara StreamWriter objekt pomoću naredbe 'using', upisuje dva retka teksta u datoteku, a zatim automatski odbacuje StreamWriter. Ako operacija pisanja uspije, softver generira poruku o uspjehu. U suprotnom, emitira poruku o neuspjehu ako se dogodi bilo koji IOException.

Zaključak

C# naredba “using” nudi praktičnu i sigurnu metodu upravljanja resursima koji zahtijevaju eksplicitno odlaganje. Možete jamčiti da se potrebni postupci čišćenja provode automatski i smanjiti vjerojatnost curenja resursa zatvaranjem potrošnje resursa unutar bloka 'korištenje'. Ovo povećava pouzdanost vašeg koda.