Wiele osób z SO wskazało, że powinienem częściej używać instrukcji using
. Więc praktykuję.Podczas korzystania z instrukcji należy używać?
Problem polega na tym, że nie mogę zdecydować, kiedy go używać i kiedy go nie używać. Kiedy myślę, że powinienem go używać, wtedy pojawiają się błędy takie jak w tym przykładzie (. PS HashPhrase to klasa stworzona przeze mnie):
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) + ";";
}
Ale to daje mi błąd: 'Password_Manager.HashPhrase': type used in a using statement must be implicitly convertible to 'System.IDisposable'
ale w ten przykład działa dobrze:
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);
}
}
}
Czy istnieją jakieś wytyczne szybki sposób określić, kiedy należy stosować using
stwierdzenie?
To ma sens. – HelpNeeder
@downvoter: Czy chciałbyś wyjaśnić powody upadku? – LukeH