Многие люди на SO отметили, что я должен чаще использовать использование
. Поэтому я практикую.
Проблема в том, что я не могу решить, когда его использовать, а когда нет. Когда я думаю, что должен его использовать, то я получаю ошибки, как в этом примере (PS. HashPhrase - это класс, созданный мной):
using (HashPhrase hash = new HashPhrase())
{
connection.ConnectionString =
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + filePath + ";" +
"Persist Security Info=False;" +
"Jet OLEDB:Database Password=" + hash.ShortHash(pass) + ";";
}
Но это дает мне ошибку: 'Password_Manager.HashPhrase': тип, используемый в операторе using, должен быть неявно конвертируемым в 'System.IDisposable'
Но в этом примере он работает нормально:
using (OleDbConnection connection = new OleDbConnection())
{
connection.ConnectionString =
"Provider=Microsoft.ACE.OLEDB.12.0;" +
"Data Source=" + filePath + ";" +
"Persist Security Info=False;" +
"Jet OLEDB:Database Password=" + hash.ShortHash(pass) + ";";
using (OleDbCommand command = new OleDbCommand(sql, connection))
{
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
}
Есть ли какие-либо краткие рекомендации, как определить, когда следует использовать оператор using
?