При использовании следует использовать оператор?

Многие люди на 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?

7
задан HelpNeeder 2 December 2011 в 01:16
поделиться