Oggi ho una domanda riguardante la classe StreamReader. Specificamente inizializzazione questa classe utilizzando il parametro filename per esempio:C# StreamReader in una prova/finalmente
TextReader tr = new StreamReader(fileName);
Ovviamente quando questa azione è terminata, il suo importante chiudere il flusso così:
tr.Close();
Vorrei avere questo in una prova/infine, il problema è che non riesco a trovare un modo per farlo. Qui ci sono alcune varianti che ho trovato che non funzionano:
try
{
var serializer = new XmlSerializer(type);
TextReader tr = new StreamReader(fileName);
var obj = serializer.Deserialize(tr);
}
finally
{
tr.Close();
}
e peggio:
TextReader tr;
try
{
var serializer = new XmlSerializer(type);
tr = new StreamReader(fileName);
var obj = serializer.Deserialize(tr);
}
finally
{
tr.Close();
}
Così è possibile avere uno StreamReader stretta in un fine?
Dichiarando TextReader tr; quindi è disponibile alla fine non è un problema. Ma usare è una risposta migliore. – Paparazzi