C# utasítás használata

C Utasitas Hasznalata



Az olyan erőforrások megsemmisítésekor, mint az adatbázis-kapcsolatok, dokumentumfolyamok vagy hálózati kapcsolatok, a C# nyelvű „using” utasítást alkalmazzák a megfelelő selejtezés érdekében. Az IDisposable felületnek megfelelő objektumok kezelését egyszerűbbé teszi ez a megközelítés. A kódnak az a része, amelyben az erőforrás előállításra és felhasználásra kerül, akkor jön létre, amikor bármely „using” utasítás deklarálva van. Ha normál feldolgozást vagy kivételt használnak a blokkból való kilépéshez, az objektum Dispose() függvénye azonnal meghívásra kerül, hogy felszabadítsa az ellenőrizetlen erőforrásokat és végrehajtsa a szükséges tisztítást. Ebben az útmutatóban a dokumentumfolyam-erőforrásokat ismertetjük a C# „using” utasítás használatával.

Szintaxis:

A C# „using” utasítás arra szolgál, hogy kezelje azokat az erőforrásokat, amelyeket kifejezetten kényelmesen és biztonságosan kell selejtezni. Egy meghatározott szintaxist követ a következőképpen:

segítségével ( ResourceType erőforrás = új ResourceType ( ) ) { // Kód }
  • A „using” kulcsszó a „using” utasítás deklarálására szolgál.
  • A „using” kulcsszó után adja meg azt az erőforrástípust, amellyel dolgozni szeretne, majd egy változónevet, amely a blokkon belüli erőforrást reprezentálja. Bármely objektum, amely végrehajtja az IDisposable felületet, megfelel. A blokkon belüli erőforrást szükség szerint kezelheti.
  • Ezután egyenlőségjelet (=) használunk az erőforrástípus új példányának hozzárendeléséhez a változóhoz.
  • Itt az „új” kulcsszót egy új erőforrás típusú objektum generálására használják.
  • Bármilyen további inicializálás vagy konfiguráció elvégezhető az új kulcsszó utáni zárójelben.
  • Végül az erőforrást használó kódot a kapcsos zárójelek közé kell tenni {}.

1. példa:

Kezdjük a C# kódpéldákkal, amelyek bemutatják a C# „using” utasítás használatát ebben a cikkben. A megadott kód egy C# programot takar, amely egy szöveges fájl tartalmát olvassa be a „StreamReader” osztály segítségével a „using” utasításon belül.







A program a szükséges névterek, System és System.IO importálásával indul, amelyek osztályokat biztosítanak az input/output műveletekhez és a fájlkezeléshez. A program meghatároz egy „Dummy” nevű osztályt. A „Dummy” osztályon belül van egy Main() metódus, amelyet mindig úgy kell kezelni, mint bármely C# program bejegyzését, amely az egész programot az elejétől a végéig végrehajtja.



A Main() metódus az „fp” karakterlánc-változó deklarálásával kezdődik, és hozzárendeli a „test.txt” értéket. Ez az olvasandó szövegfájl elérési útját jelöli. A fájlok olvasása során felmerülő összes lehetséges hiba megbirkózása érdekében egy try-catch blokkot használnak.



A try blokkon belül egy „using” utasítást használunk a „StreamReader” osztály példányának létrehozására. A fájl tartalmának megértése a „StreamReader” feladata. Az „fp” változóban tárolt fájl elérési útja átadásra kerül a „StreamReader” konstruktornak, jelzi az olvasandó fájlt.





A „using” blokkon belül a fájl tartalmát soronként vizsgálja a „while” ciklus segítségével, hacsak nem jelenik meg a dokumentum utolsó sora. A ciklus a „StreamReader” ReadLine() metódusával olvas be egy sort, és hozzárendeli az „l” karakterlánc változóhoz. Ha a sor nem nulla, akkor a Console.WriteLine(l) segítségével kinyomtatja a konzolra.

Amint a fájl végét eléri, és már nincs több olvasnivaló sor, a „using” blokk kilép, és a „StreamReader” objektum automatikusan megsemmisül a „using” utasítás miatt. A rögzítési blokk akkor aktiválódik, amikor egy dokumentum olvasása közben IOException keletkezik. A kivétel üzenetet az e.Message használatával kapja meg, és egy hibaüzenet jelenik meg a konzolon a Console.WriteLine() segítségével.



A program végrehajtása befejeződik, és megjelenik a konzol kimenete. Feltételezve, hogy a „test.txt” fájl létezik, és több sornyi szöveget tartalmaz, ennek a kódnak a kimenete a konzolon kinyomtatott fájl tartalma, amint az a következő csatolt képen látható. Minden sor külön jelenik meg a kimenetben:

rendszer segítségével ;

rendszer segítségével. IO ;

osztályú Dummy {

statikus üres ( ) {

string fp = 'teszt.txt' ;

próbáld ki {

segítségével ( StreamReader olvasó = új StreamReader ( fp ) )

{

húr l ;

míg ( ( l = olvasó. ReadLine ( ) ) != nulla )

{

Konzol. WriteLine ( l ) ;

}

}

}

fogás ( IOKivétel e ) {

Konzol. WriteLine ( 'Hiba lépett fel: ' + Ez. Üzenet ) ;

}

}

}

Jegyzet: Ha a „test.txt” fájl nem létezik, vagy probléma van a fájlhozzáféréssel vagy -olvasással, akkor a fogási blokk végrehajtásra kerül, és a konzolon megjelenik egy hibaüzenet, amely jelzi az adott kivételt.

2. példa:

Íme egy másik egyszerű példa, amely bemutatja a C# „using” utasítás használatát egy StreamWriterrel az adatok fájlba írásához. Itt található a kód magyarázata a várható kimenettel együtt. A kód a „Dummy” osztály deklarációjával és a „Main” metódussal kezdődik, amely végül elindítja és befejezi a programot.

A „Main” metóduson belül az „fp” karakterlánc-változó deklarálva van, és a „test.txt” fájl elérési útjával inicializálódik. Ez azt a dokumentumot képviseli, amelyre az információ fel van írva. A dokumentumírási folyamat során felmerülő esetleges IO-kivételek kezelésére a program egy try-catch blokkba van zárva.

A try blokkon belül egy „writer” nevű StreamWriter objektum jön létre és inicializálódik a „using” utasítással. A StreamWriter felelős a karakterek fájlba írásáért. Az író objektum WriteLine funkcióján keresztül két különálló tartalomsor kerül hozzáadásra a „használat” szakaszon belüli dokumentumhoz. A blokkból való kilépés után a StreamWriter Dispose() metódusa automatikusan meghívásra kerül, amely biztosítja, hogy a függőben lévő adatok a fájlba kerüljenek, és a szükséges erőforrások felszabaduljanak.

Végül a „használat” blokkon kívül az „Adatok sikeresen megírva”. üzenet jelenik meg a konzolon, amely bizonyítja, hogy a dokumentum írási művelete sikeres és hibamentes. A rögzítési blokk akkor aktiválódik, ha bármilyen IOException történik a dokumentum írási folyamata során. Ebben az esetben a konzolon megjelenik egy hibaüzenet az adott kivételüzenettel együtt.

rendszer segítségével ;

rendszer segítségével. IO ;

osztályú Dummy {

statikus üres ( ) {

string fp = 'teszt.txt' ;

próbáld ki {

segítségével ( StreamWriter író = új StreamWriter ( fp ) )

{

író. WriteLine ( – Helló, C-Sharp! ) ;

író. WriteLine ( – Ez egy tesztszöveg. ) ;

}

Konzol. WriteLine ( 'Az adatok sikeresen megírva.' ) ;

}

fogás ( IOKivétel e ) {

Konzol. WriteLine ( 'Hiba lépett fel: ' + Ez. Üzenet ) ;

}

}

}

Összefoglalva, a kód létrehoz egy StreamWriter objektumot a „using” utasítással, két sornyi szöveget ír egy fájlba, majd automatikusan megsemmisíti a StreamWritert. Ha az írási művelet sikeres, a szoftver sikerüzenetet generál. Ellenkező esetben hibaüzenetet küld, ha bármilyen IOException történik.

Következtetés

A C# „using” utasítás praktikus és biztonságos módszert kínál a kifejezett selejtezést igénylő erőforrások kezelésére. Ön garantálhatja, hogy a szükséges tisztítási eljárások automatikusan végrehajtásra kerülnek, és csökkenti az erőforrás-szivárgás valószínűségét, ha az erőforrás-felhasználást egy „használati” blokkba zárja. Ez növeli a kód megbízhatóságát.