C#, izmantojot paziņojumu

C Izmantojot Pazinojumu



Atbrīvojoties no resursiem, piemēram, datu bāzes savienojumiem, dokumentu straumēm vai tīkla savienojumiem, tiek izmantots paziņojums “using” C# valodā, lai nodrošinātu atbilstošu iznīcināšanu. Šī pieeja padara vienkāršāku objektu pārvaldību, kas atbilst IDisposable saskarnei. Koda sadaļa, kurā tiek ģenerēts un izmantots resurss, tiek izveidota, kad tiek deklarēts jebkurš “izmantošanas” paziņojums. Ja, lai izietu no bloka, tiek izmantota parasta apstrāde vai izņēmums, objekta Dispose() funkcija tiek nekavējoties izsaukta, lai atbrīvotu visus nekontrolētos resursus un veiktu nepieciešamo tīrīšanu. Šajā rokasgrāmatā mēs apskatīsim dokumentu straumes resursus, izmantojot C# priekšrakstu “using”.

Sintakse:

Paziņojums C# “using” tiek izmantots, lai pārvaldītu resursus, kas ir skaidri jāiznīcina ērti un droši. Tas atbilst noteiktai sintaksei šādi:

izmantojot ( ResourceType resurss = jauns ResourceType ( ) ) { // Kods }
  • Atslēgvārds “using” tiek izmantots, lai deklarētu paziņojumu “using”.
  • Pēc atslēgvārda “izmantot” jūs norādāt resursa veidu, ar kuru vēlaties strādāt, kam seko mainīgā nosaukums, kas apzīmē resursu blokā. Jebkurš objekts, kas veic IDisposable saskarni, atbilst prasībām. Ja nepieciešams, varat strādāt ar blokā esošo resursu.
  • Tālāk tiek izmantota vienādības zīme (=), lai mainīgajam piešķirtu jaunu resursa tipa gadījumu.
  • Šeit atslēgvārds “jauns” tiek izmantots, lai ģenerētu jaunu resursa tipa objektu.
  • Jebkuru papildu inicializāciju vai konfigurāciju var veikt iekavās aiz jaunā atslēgvārda.
  • Visbeidzot, jūs iekļaujat kodu, kas izmanto resursu, iekavās {}.

1. piemērs:

Sāksim ar C# koda piemēriem, lai parādītu C# priekšraksta “using” izmantošanu šajā rakstā. Dotais kods aptver C# programmu, kas nolasa teksta faila saturu, izmantojot 'StreamReader' klasi priekšrakstā 'using'.







Programma sākas, importējot nepieciešamās nosaukumvietas System un System.IO, kas nodrošina klases ievades/izvades operācijām un failu apstrādei. Programma definē klasi ar nosaukumu “Manekens”. Klasē “Dummy” ir metode Main (), kas vienmēr jāuzskata par ierakstu jebkurai C# programmai, lai izpildītu kopējo programmu no sākuma līdz beigām.



Main() metode sākas ar virknes mainīgā “fp” deklarēšanu un piešķirot tam “test.txt” vērtību. Tas apzīmē lasāmā teksta faila faila ceļu. Lai novērstu visas iespējamās kļūdas, kas var rasties, lasot failus, tiek izmantots try-catch bloks.



Mēģināšanas blokā tiek izmantots priekšraksts “using”, lai izveidotu “StreamReader” klases gadījumu. Faila satura uztveršanas uzdevums ir StreamReader. Faila ceļš, kas tiek saglabāts mainīgajā “fp”, tiek nodots konstruktoram “StreamReader”, norāda uz lasāmo failu.





Blokā “izmantot” faila saturs tiek pārbaudīts pa rindiņai, izmantojot cilpu “while”, ja vien netiek parādīta dokumenta pēdējā rindiņa. Cilpa nolasa rindiņu, izmantojot “StreamReader” metodi ReadLine(), un piešķir to virknes mainīgajam “l”. Ja rinda nav nulle, tā tiek izdrukāta konsolē, izmantojot Console.WriteLine(l).

Kad ir sasniegts faila beigas un vairs nav lasāmas rindiņas, bloks “using” tiek aizvērts un objekts “StreamReader” tiek automātiski iznīcināts paziņojuma “using” dēļ. Noķeršanas bloks tiek aktivizēts ikreiz, kad dokumenta lasīšanas laikā rodas IOException. Izņēmuma ziņojums tiek iegūts, izmantojot e.Message, un konsolē tiek parādīts kļūdas ziņojums, izmantojot Console.WriteLine().



Programmas izpilde ir pabeigta, un tiek parādīta konsoles izvade. Pieņemot, ka fails “test.txt” pastāv un satur vairākas teksta rindiņas, šī koda izvade ir faila saturs, kas tiek izdrukāts konsolē, kā parādīts nākamajā pievienotajā attēlā. Katra rinda tiek parādīta atsevišķi izvadē:

izmantojot sistēmu ;

izmantojot sistēmu. IO ;

klases manekens {

statisks nederīgs Galvenā ( ) {

virkne fp = 'test.txt' ;

mēģināt {

izmantojot ( StreamReader lasītājs = jauns StreamReader ( fp ) )

{

stīga l ;

kamēr ( ( l = lasītājs. ReadLine ( ) ) != null )

{

Konsole. WriteLine ( l ) ;

}

}

}

noķert ( IOIzņēmums e ) {

Konsole. WriteLine ( 'Radās kļūda:' + Tas ir. Ziņojums ) ;

}

}

}

Piezīme: Ja fails “test.txt” nepastāv vai ir problēmas ar piekļuvi failam vai lasīšanu, tiek izpildīts uztveršanas bloks un konsolē tiek parādīts kļūdas ziņojums, kas norāda konkrēto notikušo izņēmumu.

2. piemērs:

Šeit ir vēl viens vienkāršs piemērs, kas parāda C# priekšraksta “using” izmantošanu ar StreamWriter, lai ierakstītu datus failā. Šeit ir koda skaidrojums un tā paredzamā izvade. Kods sākas ar 'Dummy' klases deklarāciju un 'Main' metodi, kas galu galā sāks un beigs programmu.

Izmantojot metodi “Main”, virknes mainīgais “fp” tiek deklarēts un inicializēts ar “test.txt” faila ceļu. Šis ir dokuments, uz kura ir rakstīta informācija. Lai risinātu visus iespējamos IOIzņēmumus, kas varētu rasties dokumenta rakstīšanas procesā, programma ir iekļauta mēģinājuma noķeršanas blokā.

Izmēģināšanas blokā tiek izveidots StreamWriter objekts ar nosaukumu “writer” un inicializēts, izmantojot priekšrakstu “using”. StreamWriter ir atbildīgs par rakstzīmju ierakstīšanu failā. Dokumentam sadaļā “izmantošana” tiek pievienotas divas atsevišķas satura rindas, izmantojot rakstīšanas objekta WriteLine funkciju. Kad bloks ir iziets, automātiski tiek izsaukta StreamWriter metode Dispose(), kas nodrošina, ka failā tiek ierakstīti visi neapstiprinātie dati un tiek atbrīvoti nepieciešamie resursi.

Visbeidzot, ārpus bloka “izmantošana”, “Dati veiksmīgi ierakstīti”. konsolē tiek parādīts ziņojums, kas parāda, ka dokumenta rakstīšanas darbība ir veiksmīga un bez kļūdām. Noķeršanas bloks tiek aktivizēts, ja dokumenta rakstīšanas procesa laikā notiek IOException. Tādā gadījumā konsolē tiek parādīts kļūdas ziņojums kopā ar konkrēto izņēmuma ziņojumu.

izmantojot sistēmu ;

izmantojot sistēmu. IO ;

klases manekens {

statisks nederīgs Galvenā ( ) {

virkne fp = 'test.txt' ;

mēģināt {

izmantojot ( StreamWriter rakstnieks = jaunais StreamWriter ( fp ) )

{

rakstnieks. WriteLine ( 'Sveiks, C-Sharp!' ) ;

rakstnieks. WriteLine ( 'Šis ir testa teksts.' ) ;

}

Konsole. WriteLine ( 'Dati veiksmīgi ierakstīti.' ) ;

}

noķert ( IOIzņēmums e ) {

Konsole. WriteLine ( 'Uzradās kļūda: ' + Tas ir. Ziņojums ) ;

}

}

}

Rezumējot, kods izveido StreamWriter objektu, izmantojot priekšrakstu “using”, failā ieraksta divas teksta rindiņas un pēc tam automātiski atbrīvojas no StreamWriter. Ja rakstīšanas darbība izdodas, programmatūra ģenerē veiksmes ziņojumu. Pretējā gadījumā tas izstaro kļūmes ziņojumu, ja rodas kāds IOException.

Secinājums

Paziņojums C# “using” piedāvā praktisku un drošu metodi, kā pārvaldīt resursus, kuriem nepieciešama skaidra iznīcināšana. Jūs varat garantēt, ka nepieciešamās tīrīšanas procedūras tiek veiktas automātiski un samazinātu resursu noplūdes iespējamību, iekļaujot resursu patēriņu blokā “izmantošana”. Tas palielina jūsu koda uzticamību.