C# utilizzando l'istruzione

C Utilizzando L Istruzione



Quando si eliminano risorse come connessioni a database, flussi di documenti o connessioni di rete, viene utilizzata l'istruzione 'using' nel linguaggio C# per garantire uno smaltimento appropriato. La gestione degli oggetti conformi all'interfaccia IDisposable è semplificata da questo approccio. La sezione di codice in cui una risorsa viene generata e utilizzata viene creata quando viene dichiarata una qualsiasi istruzione 'using'. Se viene utilizzata un’elaborazione normale o un’eccezione per uscire dal blocco, la funzione Dispose() dell’oggetto viene immediatamente richiamata per rilasciare eventuali risorse incontrollate ed eseguire la pulizia necessaria. In questa guida tratteremo le risorse del flusso di documenti con l'uso dell'istruzione C# 'using'.

Sintassi:

L'istruzione C# 'using' viene utilizzata per gestire le risorse che devono essere smaltite in modo esplicito in modo comodo e sicuro. Segue una sintassi specifica come segue:

utilizzando ( Risorsa ResourceType = nuovo tipo di risorsa ( ) ) { // Codice }
  • La parola chiave 'using' viene utilizzata per dichiarare l'istruzione 'using'.
  • Dopo la parola chiave 'using', specifichi il tipo di risorsa con cui vuoi lavorare, seguito da un nome di variabile che rappresenta la risorsa all'interno del blocco. Qualsiasi oggetto che esegue l'interfaccia IDisposable è idoneo. È possibile operare sulla risorsa all'interno del blocco secondo necessità.
  • Successivamente, viene utilizzato un segno uguale (=) per assegnare una nuova istanza del tipo di risorsa alla variabile.
  • Qui, la parola chiave “new” viene utilizzata per generare un nuovo oggetto del tipo di risorsa.
  • Qualsiasi inizializzazione o configurazione aggiuntiva può essere eseguita all'interno delle parentesi dopo la nuova parola chiave.
  • Infine, racchiudi il codice che utilizza la risorsa tra parentesi graffe {}.

Esempio 1:

Iniziamo con gli esempi di codice C# per dimostrare l'utilizzo dell'istruzione C# 'using' in questo articolo. Il codice fornito copre un programma C# che legge il contenuto di un file di testo utilizzando la classe 'StreamReader' all'interno di un'istruzione 'using'.







Il programma inizia importando gli spazi dei nomi necessari, System e System.IO, che forniscono classi per le operazioni di input/output e la gestione dei file. Il programma definisce una classe chiamata “Dummy”. All'interno della classe 'Dummy' è presente un metodo Main() che dovrebbe sempre essere considerato come la voce di qualsiasi programma C# per eseguire il programma complessivo dall'inizio alla fine.



Il metodo Main() inizia dichiarando la variabile stringa 'fp' e assegnandole il valore 'test.txt'. Questo rappresenta il percorso del file di testo da leggere. Per far fronte a tutti i possibili errori che possono verificarsi durante la lettura dei file, viene utilizzato un blocco try-catch.



All'interno del blocco try, viene utilizzata un'istruzione 'using' per creare un'istanza della classe 'StreamReader'. Il compito di comprendere il contenuto di un file spetta allo “StreamReader”. Il percorso del file memorizzato nella variabile “fp” viene passato al costruttore “StreamReader” indica il file da leggere.





All'interno del blocco 'using', il contenuto del file viene esaminato riga per riga utilizzando un ciclo 'mentre' a meno che non venga visualizzata l'ultima riga del documento. Il ciclo legge una riga utilizzando il metodo ReadLine() dello “StreamReader” e la assegna alla variabile stringa “l”. Se la riga non è nulla, viene stampata sulla console utilizzando Console.WriteLine(l).

Una volta raggiunta la fine del file e non ci sono più righe da leggere, si esce dal blocco “using” e l'oggetto “StreamReader” viene automaticamente eliminato grazie all'istruzione “using”. Il blocco catch viene attivato ogni volta che si verifica una IOException durante la lettura di un documento. Il messaggio di eccezione viene ottenuto utilizzando e.Message e un messaggio di errore viene visualizzato sulla console utilizzando Console.WriteLine().



L'esecuzione del programma viene completata e viene visualizzato l'output della console. Supponendo che il file 'test.txt' esista e contenga diverse righe di testo, l'output di questo codice è il contenuto del file che viene stampato sulla console come visualizzato nella seguente immagine allegata. Ogni riga viene mostrata separatamente nell'output:

utilizzando il sistema ;

utilizzando il sistema. IO ;

manichino di classe {

statico vuoto Principale ( ) {

stringa fp = 'prova.txt' ;

Tentativo {

utilizzando ( Lettore StreamReader = nuovo StreamReader ( fp ) )

{

corda l ;

Mentre ( ( l = lettore. Linea di lettura ( ) ) != nullo )

{

Consolle. Linea di scrittura ( l ) ;

}

}

}

presa ( IOException e ) {

Consolle. Linea di scrittura ( 'C'è stato un'errore: ' + È. Messaggio ) ;

}

}

}

Nota: Se il file 'test.txt' non esiste o si verifica un problema con l'accesso o la lettura del file, viene eseguito il blocco catch e sulla console viene visualizzato un messaggio di errore che indica l'eccezione specifica che si è verificata.

Esempio 2:

Ecco un altro semplice esempio che dimostra l'utilizzo dell'istruzione C# 'using' con uno StreamWriter per scrivere i dati in un file. Ecco una spiegazione del codice insieme al suo output previsto. Il codice inizia con la dichiarazione della classe “Dummy” e del metodo “Main” che alla fine avvierà e terminerà il programma.

All'interno del metodo “Main”, la variabile stringa “fp” viene dichiarata e inizializzata con il percorso del file “test.txt”. Il documento su cui sono scritte le informazioni è rappresentato da questo. Per gestire qualsiasi possibile IOException che potrebbe verificarsi durante il processo di scrittura del documento, il programma è racchiuso in un blocco try-catch.

All'interno del blocco try, un oggetto StreamWriter denominato 'writer' viene creato e inizializzato utilizzando l'istruzione 'using'. Lo StreamWriter è responsabile della scrittura dei caratteri in un file. Due righe di contenuto separate vengono aggiunte a un documento all'interno della sezione 'using' tramite la funzione WriteLine dell'oggetto writer. Una volta uscito dal blocco, viene chiamato automaticamente il metodo Dispose() dello StreamWriter che garantisce che eventuali dati in sospeso vengano scritti nel file e che vengano rilasciate le risorse necessarie.

Infine, all'esterno del blocco “using”, si trova la casella “Dati scritti con successo”. sulla console viene visualizzato un messaggio che dimostra che l'operazione di scrittura del documento è andata a buon fine e senza errori. Il blocco catch viene attivato se si verifica una IOException durante il processo di scrittura del documento. In tal caso, sulla console viene visualizzato un messaggio di errore insieme al messaggio di eccezione specifico.

utilizzando il sistema ;

utilizzando il sistema. IO ;

manichino di classe {

statico vuoto Principale ( ) {

stringa fp = 'prova.txt' ;

Tentativo {

utilizzando ( Scrittore StreamWriter = nuovo StreamWriter ( fp ) )

{

scrittore. Linea di scrittura ( 'Ciao, Do diesis!' ) ;

scrittore. Linea di scrittura ( 'Questo è un testo di prova.' ) ;

}

Consolle. Linea di scrittura ( 'Dati scritti con successo.' ) ;

}

presa ( IOException e ) {

Consolle. Linea di scrittura ( 'Errore: ' + È. Messaggio ) ;

}

}

}

In sintesi, il codice crea un oggetto StreamWriter utilizzando l'istruzione 'using', scrive due righe di testo in un file e quindi elimina automaticamente StreamWriter. Se l'operazione di scrittura ha esito positivo, il software genera un messaggio di successo. Altrimenti, emette un messaggio di errore se si verifica una IOException.

Conclusione

L'istruzione C# 'using' offre un metodo pratico e sicuro per gestire le risorse che richiedono uno smaltimento esplicito. Puoi garantire che le procedure di pulizia necessarie vengano eseguite automaticamente e ridurre la probabilità di perdite di risorse racchiudendo il consumo di risorse all'interno di un blocco 'using'. Ciò aumenta l'affidabilità del codice.