鑑於下面的代碼,我看到不再需要關閉閱讀器或連接的finally塊(如果它仍然可用)。使用如此多的嵌套「使用」語句有什麼好處或缺點?還是我應該走最後的路線?使用「使用」太多?
List<string> platforms = new List<string>();
NpgsqlDataReader reader = null;
try
{
using (NpgsqlConnection conn = new NpgsqlConnection(GetConnectionString()))
{
// Making connection with Npgsql provider
string sql = @"SELECT platforms.""name"" FROM public.""platforms""";
using (NpgsqlCommand command = new NpgsqlCommand(sql))
{
command.Connection = conn;
command.CommandType = System.Data.CommandType.Text;
conn.Open();
using (reader = command.ExecuteReader())
{
while (reader.Read())
{
platforms.Add((string)reader["name"].ToString());
}
}
}
}
}
catch (Exception err)
{
HandleError(err, "GetPlatforms");
}
finally
{
platforms = null;
if (!reader.IsClosed)
{
reader.Close();
}
}
那麼,如果他們現在會添加「濫用(var ...)',語言看起來不正確? – corsiKa 2011-04-20 13:16:23