C# pomocí příkazu

C Pomoci Prikazu



Při likvidaci zdrojů, jako jsou databázová připojení, toky dokumentů nebo síťová připojení, se k zajištění náležité likvidace používá příkaz „using“ v jazyce C#. Správa objektů, které vyhovují rozhraní IDisposable, je tímto přístupem jednodušší. Sekce kódu, ve které je zdroj generován a využíván, je vytvořen, když je deklarován jakýkoli příkaz „using“. Pokud se k opuštění bloku použije normální zpracování nebo výjimka, okamžitě se vyvolá funkce Dispose() objektu, aby se uvolnily všechny nekontrolované zdroje a provedlo se nezbytné čištění. V této příručce pokryjeme zdroje toku dokumentů pomocí příkazu C# „using“.

Syntax:

Příkaz C# „using“ se používá ke správě zdrojů, které je třeba explicitně zlikvidovat pohodlně a bezpečně. Řídí se specifickou syntaxí takto:

použitím ( Zdroj typu zdroje = nový ResourceType ( ) ) { // Kód }
  • Klíčové slovo „using“ se používá k deklaraci příkazu „using“.
  • Po klíčovém slově „using“ určíte typ zdroje, se kterým chcete pracovat, a poté název proměnné, která představuje zdroj v rámci bloku. Kvalifikuje se jakýkoli objekt, který provádí rozhraní IDisposable. Podle potřeby můžete pracovat se zdrojem v rámci bloku.
  • Dále se použije rovnítko (=) k přiřazení nové instance typu prostředku k proměnné.
  • Zde se klíčové slovo „new“ používá ke generování nového objektu typu zdroje.
  • Jakákoli další inicializace nebo konfigurace může být provedena v závorkách za novým klíčovým slovem.
  • Nakonec uzavřete kód, který používá zdroj, do složených závorek {}.

Příklad 1:

Začněme příklady kódu C#, abychom demonstrovali využití příkazu C# „using“ v tomto článku. Daný kód pokrývá program C#, který čte obsah textového souboru pomocí třídy „StreamReader“ v příkazu „using“.







Program začíná importem potřebných jmenných prostorů System a System.IO, které poskytují třídy pro vstupně/výstupní operace a manipulaci se soubory. Program definuje třídu s názvem „Dummy“. Uvnitř třídy „Dummy“ existuje metoda Main(), která by měla být vždy považována za položku pro jakýkoli program v jazyce C#, aby mohl spustit celý program od začátku do konce.



Metoda Main() začíná deklarováním řetězcové proměnné „fp“ a přiřazením hodnoty „test.txt“. Představuje cestu k textovému souboru, který se má číst. Pro zvládnutí všech možných chyb, které mohou nastat při čtení souborů, se používá blok try-catch.



V bloku try se příkaz „using“ používá k vytvoření instance třídy „StreamReader“. Úkol porozumět obsahu souboru spadá do „StreamReaderu“. Cesta k souboru, která je uložena v proměnné „fp“, je předána konstruktoru „StreamReader“ a označuje soubor, který se má číst.





Uvnitř bloku „using“ je obsah souboru zkoumán řádek po řádku pomocí smyčky „while“, pokud se neobjeví poslední řádek dokumentu. Smyčka čte řádek pomocí metody ReadLine() „StreamReader“ a přiřadí jej řetězcové proměnné „l“. Pokud řádek není prázdný, vytiskne se na konzolu pomocí Console.WriteLine(l).

Jakmile je dosaženo konce souboru a již nejsou žádné řádky ke čtení, blok „using“ se opustí a objekt „StreamReader“ se automaticky zlikviduje kvůli příkazu „using“. Blok catch se aktivuje vždy, když se při čtení dokumentu objeví IOException. Zpráva o výjimce se získá pomocí e.Message a chybová zpráva se zobrazí na konzole pomocí Console.WriteLine().



Provádění programu se dokončí a zobrazí se výstup konzoly. Za předpokladu, že soubor „test.txt“ existuje a obsahuje několik řádků textu, výstupem tohoto kódu je obsah souboru, který je vytištěn na konzole, jak je zobrazeno na následujícím přiloženém obrázku. Každý řádek je ve výstupu zobrazen samostatně:

pomocí System ;

pomocí System. IO ;

třída Dummy {

statický prázdnota Hlavní ( ) {

řetězec fp = 'test.txt' ;

Snaž se {

použitím ( Čtečka StreamReader = nový StreamReader ( fp ) )

{

řetězec l ;

zatímco ( ( l = čtenář. ReadLine ( ) ) != nula )

{

Řídicí panel. WriteLine ( l ) ;

}

}

}

chytit ( IOException e ) {

Řídicí panel. WriteLine ( 'Vyskytla se chyba: ' + To je. Zpráva ) ;

}

}

}

Poznámka: Pokud soubor „test.txt“ neexistuje nebo je problém s přístupem k souboru nebo čtením, provede se blok catch a na konzole se zobrazí chybová zpráva, která označuje konkrétní výjimku, ke které došlo.

Příklad 2:

Zde je další jednoduchý příklad, který demonstruje použití příkazu C# „using“ s StreamWriter k zápisu dat do souboru. Zde je vysvětlení kódu spolu s jeho očekávaným výstupem. Kód začíná deklarací třídy „Dummy“ a metody „Main“, která nakonec spustí a ukončí program.

V rámci metody „Main“ je řetězcová proměnná „fp“ deklarována a inicializována cestou k souboru „test.txt“. Dokument, na kterém jsou informace zapsány, je reprezentován tímto. Aby se vypořádal s jakoukoli možnou výjimkou IOException, která by mohla nastat během procesu psaní dokumentu, je program uzavřen v bloku try-catch.

Uvnitř bloku try je vytvořen objekt StreamWriter s názvem „writer“ a inicializován pomocí příkazu „using“. StreamWriter je zodpovědný za zápis znaků do souboru. Dva samostatné řádky obsahu jsou přidány do dokumentu uvnitř sekce „using“ pomocí funkce WriteLine objektu WriteLine. Jakmile je blok opuštěn, je automaticky volána metoda Dispose() StreamWriter, která zajistí, že všechna čekající data budou zapsána do souboru a budou uvolněny potřebné zdroje.

Konečně, mimo blok „používá se“, „Data byla úspěšně zapsána“. na konzole se zobrazí zpráva, která demonstruje, že operace zápisu dokumentu je úspěšná a bez chyb. Blok catch se aktivuje, pokud během procesu zápisu dokumentu dojde k jakékoli výjimce IOException. V takovém případě se na konzole zobrazí chybová zpráva spolu s konkrétní zprávou o výjimce.

pomocí System ;

pomocí System. IO ;

třída Dummy {

statický prázdnota Hlavní ( ) {

řetězec fp = 'test.txt' ;

Snaž se {

použitím ( Spisovatel StreamWriter = nový StreamWriter ( fp ) )

{

spisovatel. WriteLine ( 'Ahoj, C-Sharpe!' ) ;

spisovatel. WriteLine ( 'Toto je testovací text.' ) ;

}

Řídicí panel. WriteLine ( 'Data byla úspěšně zapsána.' ) ;

}

chytit ( IOException e ) {

Řídicí panel. WriteLine ( 'Vyskytla se chyba: ' + To je. Zpráva ) ;

}

}

}

Stručně řečeno, kód vytvoří objekt StreamWriter pomocí příkazu „using“, zapíše dva řádky textu do souboru a poté automaticky zlikviduje StreamWriter. Pokud je operace zápisu úspěšná, software vygeneruje zprávu o úspěchu. V opačném případě vyšle chybovou zprávu, pokud dojde k jakékoli výjimce IOException.

Závěr

Příkaz C# „using“ nabízí praktickou a bezpečnou metodu správy zdrojů, které vyžadují explicitní likvidaci. Můžete zaručit, že nezbytné postupy čištění budou provedeny automaticky, a snížit pravděpodobnost úniku zdrojů tím, že spotřebu zdrojů uzavřete do bloku „používání“. To zvyšuje spolehlivost vašeho kódu.