gpt4 book ai didi

c# - 什么时候应该使用Using语句?

转载 作者:太空狗 更新时间:2023-10-29 19:50:47 24 4
gpt4 key购买 nike

SO 上很多人指出我应该更频繁地使用using 语句。所以我在练习。

问题是我无法决定何时使用它,何时不使用它。当我认为我应该使用它时,我得到了这个例子中的错误(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': type used in a using statement must be implicitly conversionble to '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 语句?

最佳答案

您的问题已经涉及到答案。

如果类型实现了 IDisposable interface 那么你的目标应该是使用 using尽可能(也就是说,总是,除非有令人信服的理由不这样做)。

如果类型没有实现 IDisposable,那么你就不能使用 using,正如你已经发现的那样,编译器会告诉你。

关于c# - 什么时候应该使用Using语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8350432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com