【发布时间】:2011-03-01 05:16:14
【问题描述】:
我有一个翻转数据集方向的 C# 函数:
static DataSet FlipDataSet(DataSet my_DataSet)
{
using (DataSet ds = new DataSet())
{
foreach (DataTable dt in my_DataSet.Tables)
{
DataTable table = new DataTable();
for (int i = 0; i <= dt.Rows.Count; i++)
{
table.Columns.Add(Convert.ToString(i));
}
DataRow r = null;
for (int k = 0; k < dt.Columns.Count; k++)
{
r = table.NewRow();
r[0] = dt.Columns[k].ToString();
for (int j = 1; j <= dt.Rows.Count; j++)
r[j] = dt.Rows[j - 1][k];
table.Rows.Add(r);
}
ds.Tables.Add(table);
table.Dispose();
}
return ds;
}
}
我根据在互联网上找到的 sn-p 修改了这段代码,将创建的 DataSet 包装在 using 语句中,并显式处理它创建的 IDisposable 对象。我的问题是,就处置而言,当 DataSet(上述代码中的“ds”)返回时会发生什么情况?在我返回它之后,我不能在 ds 上显式调用 .Dispose() ,显然,.NET 也会返回该值然后正确处理它,还是我完全遗漏了什么?
【问题讨论】:
标签: c# .net dataset idisposable return