gpt4 book ai didi

c# - "try"应该在资源分配之前还是之后?

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:46 25 4
gpt4 key购买 nike

在 Delphi 世界中,至少有人认为最好在资源分配之后进行尝试,例如:

OracleCommand oc = new OracleCommand(query, con);
try
begin
oc.CommandType = CommandType.Text;
String s = oc.ExecuteScalar().ToString();
try
return s;
except (on OracleException ex)
begin
ShowMessage(ex.Message);
result := string.Empty;
end;
end
finally
begin
con.Close();
con.Dispose();
end;

在 C# 中是否相同,或者“try”应该先于资源分配:

try
{
OracleCommand oc = new OracleCommand(query, con);
oc.CommandType = CommandType.Text;
String s = oc.ExecuteScalar().ToString();
try
{
return s;
}
catch (OracleException ex)
{
MessageBox.Show(ex.Message);
return string.Empty;
}
}
finally
{
con.Close();
con.Dispose();
}

?

最佳答案

还有一个更好的解决方案:using陈述。除了这段代码,您可以编写惯用的

using (Connection con = /* some initialization logic */)
{
try
{
using (OracleCommand oc = new OracleCommand(query, con))
{
oc.CommandType = CommandType.Text;
return oc.ExecuteScalar().ToString();
} // oc is automatically disposed here
}
catch (OracleException ex)
{
MessageBox.Show(ex.Message);
return string.Empty;
}
} // con is automatically disposed here

关于c# - "try"应该在资源分配之前还是之后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879759/

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