C# Gebruiksinstructie

C Gebruiksinstructie



Bij het verwijderen van bronnen zoals databaseverbindingen, documentstromen of netwerkverbindingen wordt de instructie 'using' in de C#-taal gebruikt om een ​​passende verwijdering te garanderen. Het beheer van objecten die voldoen aan de IDisposable-interface wordt door deze aanpak eenvoudiger gemaakt. Het codegedeelte waarin een bron wordt gegenereerd en gebruikt, wordt gemaakt wanneer een 'using'-instructie wordt gedeclareerd. Als een normale verwerking of een uitzondering wordt gebruikt om het blok te verlaten, wordt de functie Dispose() van het object onmiddellijk aangeroepen om eventuele ongecontroleerde bronnen vrij te geven en de noodzakelijke opschoning uit te voeren. In deze handleiding behandelen we de bronnen van de documentstroom met behulp van de C#-instructie 'using'.

Syntaxis:

De C#-instructie “using” wordt gebruikt om de bronnen te beheren die expliciet op een gemakkelijke en veilige manier moeten worden verwijderd. Het volgt een specifieke syntaxis als volgt:

gebruik makend van ( ResourceType-bron = nieuw resourcetype ( ) ) { // Code}
  • Het sleutelwoord “using” wordt gebruikt om de verklaring “using” te declareren.
  • Na het trefwoord “using” specificeert u het resourcetype waarmee u wilt werken, gevolgd door een variabelenaam die de resource binnen het blok vertegenwoordigt. Elk object dat de IDisposable-interface uitvoert, komt in aanmerking. U kunt indien nodig de resource binnen het blok bewerken.
  • Vervolgens wordt een gelijkteken (=) gebruikt om een ​​nieuw exemplaar van het resourcetype aan de variabele toe te wijzen.
  • Hier wordt het trefwoord ‘nieuw’ gebruikt om een ​​nieuw object van het resourcetype te genereren.
  • Eventuele aanvullende initialisatie of configuratie kan tussen haakjes na het nieuwe trefwoord worden uitgevoerd.
  • Ten slotte plaatst u de code die de bron gebruikt tussen de accolades {}.

Voorbeeld 1:

Laten we beginnen met de C#-codevoorbeelden om het gebruik van de C#-instructie 'using' in dit artikel te demonstreren. De gegeven code dekt een C#-programma dat de inhoud van een tekstbestand leest met behulp van de klasse “StreamReader” binnen een “using” -instructie.







Het programma begint met het importeren van de benodigde naamruimten, System en System.IO, die klassen bieden voor invoer-/uitvoerbewerkingen en bestandsverwerking. Het programma definieert een klasse genaamd “Dummy”. Binnen de klasse “Dummy” bevindt zich een Main()-methode die altijd moet worden behandeld als de invoer voor elk C#-programma om het algehele programma van begin tot eind uit te voeren.



De Main()-methode begint met het declareren van de stringvariabele “fp” en wijst hieraan de waarde “test.txt” toe. Dit vertegenwoordigt het bestandspad van het te lezen tekstbestand. Om alle mogelijke fouten op te vangen die kunnen optreden bij het lezen van bestanden, wordt een try-catch-blok gebruikt.



Binnen het try-blok wordt een “using”-instructie gebruikt om een ​​exemplaar van de klasse “StreamReader” te maken. De taak om de inhoud van een bestand te begrijpen valt onder de verantwoordelijkheid van de “StreamReader”. Het bestandspad dat is opgeslagen in de variabele “fp” wordt doorgegeven aan de constructor “StreamReader” en geeft aan welk bestand moet worden gelezen.





Binnen het ‘using’-blok wordt de inhoud van het bestand regel voor regel onderzocht met behulp van een ‘while’-lus, tenzij de laatste regel van het document verschijnt. De lus leest een regel met behulp van de ReadLine()-methode van de “StreamReader” en wijst deze toe aan de stringvariabele “l”. Als de regel niet nul is, wordt deze naar de console afgedrukt met behulp van Console.WriteLine(l).

Zodra het einde van het bestand is bereikt en er geen regels meer zijn om te lezen, wordt het “using”-blok verlaten en wordt het “StreamReader”-object automatisch verwijderd vanwege de “using”-instructie. Het catch-blok wordt geactiveerd wanneer er een IOException optreedt tijdens het lezen van een document. Het uitzonderingsbericht wordt verkregen met behulp van de e.Message en er wordt een foutmelding weergegeven op de console met behulp van de Console.WriteLine().



De uitvoering van het programma is voltooid en de console-uitvoer wordt weergegeven. Ervan uitgaande dat het bestand “test.txt” bestaat en meerdere regels tekst bevat, is de uitvoer van deze code de inhoud van het bestand dat op de console wordt afgedrukt, zoals weergegeven in de volgende bijgevoegde afbeelding. Elke regel wordt afzonderlijk weergegeven in de uitvoer:

met behulp van Systeem ;

met behulp van Systeem. IO ;

klasse Dummy {

statisch leegte Voornaamst ( ) {

tekenreeks fp = 'test.txt' ;

poging {

gebruik makend van ( StreamReader-lezer = nieuwe StreamReader ( fp ) )

{

snaar l ;

terwijl ( ( l = lezer. Lees regel ( ) ) != nul )

{

Troosten. Schrijf lijn ( l ) ;

}

}

}

vangst ( IOUitzondering e ) {

Troosten. Schrijf lijn ( 'Fout opgetreden: ' + Het is. Bericht ) ;

}

}

}

Opmerking: Als het bestand “test.txt” niet bestaat of als er een probleem is met de toegang tot of het lezen van bestanden, wordt het catch-blok uitgevoerd en wordt er een foutmelding weergegeven op de console die de specifieke uitzondering aangeeft die heeft plaatsgevonden.

Voorbeeld 2:

Hier is nog een eenvoudig voorbeeld dat het gebruik demonstreert van de C# “using”-instructie met een StreamWriter om de gegevens naar een bestand te schrijven. Hier is een uitleg van de code samen met de verwachte uitvoer. De code begint met de declaratie van de klasse “Dummy” en de “Main” -methode, die uiteindelijk het programma zal starten en beëindigen.

Binnen de “Main”-methode wordt de stringvariabele “fp” gedeclareerd en geïnitialiseerd met het bestandspad “test.txt”. Het document waarop de informatie is geschreven, wordt hierdoor weergegeven. Om met eventuele IOExceptions om te gaan die tijdens het schrijfproces van documenten kunnen optreden, is het programma ingesloten in een try-catch-blok.

Binnen het try-blok wordt een StreamWriter-object met de naam “writer” gemaakt en geïnitialiseerd met behulp van de instructie “using”. De StreamWriter is verantwoordelijk voor het schrijven van tekens naar een bestand. Er worden twee afzonderlijke regels met inhoud toegevoegd aan een document in de sectie 'gebruik' via de WriteLine-functie van het writer-object. Zodra het blok wordt verlaten, wordt automatisch de Dispose()-methode van de StreamWriter aangeroepen, die ervoor zorgt dat alle openstaande gegevens naar het bestand worden geschreven en de benodigde bronnen worden vrijgegeven.

Ten slotte, buiten het blok ‘gebruiken’, de optie ‘Gegevens succesvol geschreven’. Er wordt een bericht op de console weergegeven dat aantoont dat de schrijfbewerking van het document succesvol en foutloos is. Het catch-blok wordt geactiveerd als er een IOException optreedt tijdens het schrijfproces van het document. In dat geval wordt een foutmelding samen met het specifieke uitzonderingsbericht weergegeven op de console.

met behulp van Systeem ;

met behulp van Systeem. IO ;

klasse Dummy {

statisch leegte Voornaamst ( ) {

tekenreeks fp = 'test.txt' ;

poging {

gebruik makend van ( StreamWriter-schrijver = nieuwe StreamWriter ( fp ) )

{

auteur. Schrijf lijn ( 'Hallo C-Sharp!' ) ;

auteur. Schrijf lijn ( 'Dit is een testtekst.' ) ;

}

Troosten. Schrijf lijn ( 'Gegevens succesvol geschreven.' ) ;

}

vangst ( IOUitzondering e ) {

Troosten. Schrijf lijn ( 'Fout opgetreden: ' + Het is. Bericht ) ;

}

}

}

Samenvattend creëert de code een StreamWriter-object met behulp van de instructie “using”, schrijft twee regels tekst naar een bestand en verwijdert vervolgens automatisch de StreamWriter. Als de schrijfbewerking slaagt, genereert de software een succesbericht. Anders wordt er een foutbericht verzonden als er een IOException optreedt.

Conclusie

De C# “using”-instructie biedt een praktische en veilige methode voor het beheren van de bronnen die expliciet moeten worden verwijderd. U kunt garanderen dat de noodzakelijke opruimingsprocedures automatisch worden uitgevoerd en de kans op het lekken van bronnen verkleinen door het verbruik van bronnen in een 'gebruikt'-blok op te nemen. Dit verhoogt de betrouwbaarheid van uw code.