【发布时间】:2014-11-20 04:01:10
【问题描述】:
谁能告诉我使用 Disposing 对象的属性是否有效?例如在下面的代码中,DataTable 正在获取 Dispose 但其属性 DefaultView 稍后使用,
public DataView MyView { get; set; }
private void button2_Click(object sender, EventArgs e)
{
using (DataTable table = new DataTable())
{
using (DataColumn dc = new DataColumn("s"))
{
table.Columns.Add(dc);
MyView = table.DefaultView;
}
Debug.Write(table.Columns[0].ColumnName);
}
}
如果我使用 MyView,我不会收到任何错误。但是在这种情况下,Disposing 对象是否会释放其所有属性 DefaultView。
【问题讨论】:
-
一般情况下,请勿触摸已处置的物体。你碰巧用
DataTable侥幸逃脱。不要养成这个习惯。 -
以后用在哪里?它超出了
using语句的范围,因此以后无法使用。 -
你是 100% 正确的。绝对应该期望引用“dc”指向的托管资源具有这种行为方式。引用本身不存在,也无法访问。
标签: c# .net using-statement