C# Bruker Statement

C Bruker Statement



Når du kaster ressurser som databaseforbindelser, dokumentstrømmer eller nettverkstilkoblinger, brukes 'using'-setningen på C#-språket for å sikre en passende avhending. Håndteringen av objekter som samsvarer med IDisposable-grensesnittet er gjort enklere med denne tilnærmingen. Kodedelen der en ressurs genereres og brukes, opprettes når en 'bruker'-setning er deklarert. Hvis en normal behandling eller et unntak brukes for å gå ut av blokken, aktiveres objektets Dispose()-funksjon umiddelbart for å frigjøre eventuelle ukontrollerte ressurser og utføre nødvendig rengjøring. I denne veiledningen vil vi dekke dokumentstrømressursene ved bruk av C# 'using'-setningen.

Syntaks:

C# 'using'-setningen brukes til å administrere ressursene som eksplisitt må avhendes på en praktisk og sikker måte. Den følger en spesifikk syntaks som følger:

ved hjelp av ( ResourceType-ressurs = ny ressurstype ( ) ) { // Kode }
  • Nøkkelordet 'bruker' brukes til å erklære 'bruker'-setningen.
  • Etter nøkkelordet «bruker» spesifiserer du ressurstypen du vil jobbe med, etterfulgt av et variabelnavn som representerer ressursen i blokken. Ethvert objekt som utfører IDisposable-grensesnittet kvalifiserer. Du kan operere på ressursen innenfor blokken etter behov.
  • Deretter brukes et likhetstegn (=) for å tilordne en ny forekomst av ressurstypen til variabelen.
  • Her brukes det 'nye' nøkkelordet for å generere et nytt objekt av ressurstypen.
  • Eventuell ekstra initialisering eller konfigurasjon kan utføres innenfor parentesen etter det nye nøkkelordet.
  • Til slutt legger du ved koden som bruker ressursen innenfor de krøllede klammeparentesene {}.

Eksempel 1:

La oss begynne med C#-kodeeksemplene for å demonstrere bruken av C# 'using'-setningen i denne artikkelen. Den gitte koden dekker et C#-program som leser innholdet i en tekstfil ved å bruke 'StreamReader'-klassen i en 'using'-setning.







Programmet starter med å importere nødvendige navneområder, System og System.IO, som gir klasser for input/output operasjoner og filhåndtering. Programmet definerer en klasse kalt 'Dummy'. Inne i 'Dummy'-klassen er det en Main()-metode som alltid skal behandles som oppføringen for ethvert C#-program for å kjøre det overordnede programmet fra start til slutt.



Main()-metoden begynner med å erklære 'fp'-strengvariabelen og tilordne den 'test.txt'-verdien. Dette representerer filbanen til tekstfilen som skal leses. For å takle alle mulige feil som kan oppstå ved lesing av filer, benyttes en try-catch-blokk.



Innenfor try-blokken brukes en 'using'-setning for å lage en forekomst av 'StreamReader'-klassen. Oppgaven med å forstå innholdet fra en fil faller på 'StreamReader'. Filbanen som er lagret i 'fp'-variabelen sendes til 'StreamReader'-konstruktøren indikerer filen som skal leses.





Inne i 'bruker'-blokken undersøkes filens innhold linje for linje ved hjelp av en 'mens'-løkke med mindre den siste linjen i dokumentet vises. Sløyfen leser en linje ved å bruke ReadLine()-metoden til 'StreamReader' og tilordner den til strengvariabelen 'l'. Hvis linjen ikke er null, skrives den ut til konsollen ved å bruke Console.WriteLine(l).

Når slutten av filen er nådd og det ikke er flere linjer å lese, avsluttes 'using'-blokken og 'StreamReader'-objektet blir automatisk avhendet på grunn av 'using'-setningen. Fangstblokken aktiveres hver gang et IOException oppstår under lesing av et dokument. Unntaksmeldingen hentes ved hjelp av e.Message, og en feilmelding vises på konsollen ved å bruke Console.WriteLine().



Programkjøringen fullføres og konsollutgangen vises. Forutsatt at 'test.txt'-filen eksisterer og inneholder flere linjer med tekst, er utdata fra denne koden innholdet i filen som er skrevet ut på konsollen som vist i følgende vedlagte bilde. Hver linje vises separat i utgangen:

bruker System ;

bruker System. IO ;

klasse Dummy {

statisk tomrom Hoved ( ) {

streng fp = 'test.txt' ;

prøve {

ved hjelp av ( StreamReader-leser = nye StreamReader ( fp ) )

{

streng l ;

samtidig som ( ( l = leser. Leselinje ( ) ) != null )

{

Konsoll. WriteLine ( l ) ;

}

}

}

å fange ( IOException e ) {

Konsoll. WriteLine ( 'Feil oppstod: ' + Det er. Beskjed ) ;

}

}

}

Merk: Hvis 'test.txt'-filen ikke eksisterer eller det er et problem med filtilgang eller lesing, utføres catch-blokken, og en feilmelding vises på konsollen som indikerer det spesifikke unntaket som skjedde.

Eksempel 2:

Her er et annet enkelt eksempel som demonstrerer bruken av C# 'using'-setningen med en StreamWriter for å skrive dataene til en fil. Her er en forklaring av koden sammen med dens forventede utgang. Koden starter med erklæringen av 'Dummy'-klassen og 'Main'-metoden som til slutt vil starte og avslutte programmet.

Innenfor 'Main'-metoden er 'fp'-strengvariabelen erklært og initialisert med 'test.txt'-filbanen. Dokumentet som informasjonen er skrevet på er representert ved dette. For å håndtere ethvert mulig IOException som kan oppstå gjennom dokumentskrivingsprosessen, er programmet innelukket i en try-catch-blokk.

Inne i try-blokken blir et StreamWriter-objekt kalt 'writer' opprettet og initialisert ved å bruke 'using'-setningen. StreamWriter er ansvarlig for å skrive tegn til en fil. To separate linjer med innhold legges til et dokument i 'bruker'-delen via writer-objektets WriteLine-funksjon. Når blokken er avsluttet, kalles Dispose()-metoden til StreamWriter automatisk som sikrer at alle ventende data blir skrevet til filen og de nødvendige ressursene frigjøres.

Til slutt, utenfor 'bruker'-blokken, 'Data skrevet vellykket.' melding vises på konsollen som viser at dokumentets skriveoperasjon er vellykket og feilfri. Fangstblokken aktiveres hvis noen IOException skjer under dokumentets skriveprosess. I så fall vises en feilmelding sammen med den spesifikke unntaksmeldingen på konsollen.

bruker System ;

bruker System. IO ;

klasse Dummy {

statisk tomrom Hoved ( ) {

streng fp = 'test.txt' ;

prøve {

ved hjelp av ( StreamWriter-forfatter = nye StreamWriter ( fp ) )

{

forfatter. WriteLine ( 'Hei, C-Sharp!' ) ;

forfatter. WriteLine ( 'Dette er en testtekst.' ) ;

}

Konsoll. WriteLine ( 'Data skrevet vellykket.' ) ;

}

å fange ( IOException e ) {

Konsoll. WriteLine ( 'Feil oppsto: ' + Det er. Beskjed ) ;

}

}

}

Oppsummert oppretter koden et StreamWriter-objekt ved å bruke 'using'-setningen, skriver to linjer med tekst til en fil, og kaster deretter StreamWriter automatisk. Hvis skriveoperasjonen lykkes, genererer programvaren en suksessmelding. Ellers sender den ut en feilmelding hvis noen IOException oppstår.

Konklusjon

C# 'bruker'-setningen tilbyr en praktisk og sikker metode for å administrere ressursene som krever en eksplisitt avhending. Du kan garantere at de nødvendige oppryddingsprosedyrene utføres automatisk og redusere sannsynligheten for ressurslekkasjer ved å lukke ressursforbruket i en 'bruker'-blokk. Dette øker påliteligheten til koden din.