Voglio davvero togliermi dalla testa. Vedere sotto il codice:C# using statement
using (DataTable resultTable = DBUtility.GetSingleDBTableResult(connectionString, "SELECT * FROM MyDBTable")) {
List<string> resultsList = new List<string>();
foreach (DataRow dataRow in resultTable.Rows) {
resultsList.Add(dataRow[0].ToString());
}
return resultsList;
}
Il datatable è disposto? Qualcuno può spiegare come questo è tradotto in un blocco try/catch/finally? MSDN afferma che se si è verificata un'eccezione, verrà comunque chiamato il metodo Dispose, ma per quanto riguarda l'istruzione return?
o devo solo utilizzare il codice qui sotto:
List<string> resultsList = new List<string>();
using (DataTable resultTable = DBUtility.GetSingleDBTableResult(connectionString, "SELECT * FROM MyDBTable")) {
foreach (DataRow dataRow in resultTable.Rows) {
resultsList.Add(dataRow[0].ToString());
}
}
return resultsList;
Probabilmente, il secondo dovrebbe essere usato, ma ho solo bisogno di illuminazione :). Spiega per favore. Grazie.
Metti il tuo ritorno dove vuoi, Dispose sarà chiamato a prescindere. 'Usare' è tuo amico! – Chris