我想了解两者的区别
public DataTable ExectNonActQuery(string spname, SqlCommand command)
{
using (DataTable dt = new DataTable())
{
cmd = command;
cmd.Connection = GetConnection();
cmd.CommandText = spname;
cmd.CommandType = CommandType.StoredProcedure;
da.SelectCommand = cmd;
da.Fill(dt);
return (dt);
}
}
和
public DataTable ExectNonActQuery(string spname, SqlCommand command)
{
DataTable dt = new DataTable();
cmd = command;
cmd.Connection = GetConnection();
cmd.CommandText = spname;
cmd.CommandType = CommandType.StoredProcedure;
da.SelectCommand = cmd;
da.Fill(dt);
return (dt);
}
}
我其实很想了解使用“using”创建一个新对象而不是像这样直接创建它有什么好处
DataTable dt = new DataTable();
最佳答案
您的第一个示例不正确:using(var ...)
确保 IDisposable.Dispose
在 using
中声明的变量上被调用退出时。因此,您的第一个示例返回一个 disposed 对象,这几乎肯定是错误的。
通常,using
block 大致等同于:
var x = new MyDisposable();
try {
// Do something with x
} finally {
x.Dispose();
}
由于这是 C# 中非常常见的模式,为方便起见,我们提供了一种特殊的语法。
关于c# - "using"有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365324/