我的表单中有一个全局对象数组。我想多次更改数组长度。所以我需要处理它并以不同的长度新增它。
如下面Do you need to dispose of objects and set them to null?
的代码((IDisposable)obj).Dispose();
我有错误:
错误1无法将类型'business.person.clssHeadCustomer []'转换为'System.IDisposable'D:\ acc2012 \ acc2012 \ WindowsFormsApplication1 \ hesabdari \ frmCustomer.cs 80 14演示文稿
现在该怎么办?!
答案 0 :(得分:1)
在C#中,有一种名为List
的数组,不需要固定长度
List<clssHeadCustomer> myList = new List<clssHeadCustomer>();
您可以自由添加和删除项目
myList.Add(obj);
myList.Remove(obj);
您的错误是说您无法将列表转换为IDisposable
,因为它(或其基类)没有实现它,因此两种类型之间没有有效转换,IDisposable的示例实现会像
class MyClass : IDisposable
答案 1 :(得分:0)
在您的示例中,您将收到该错误,因为您强制未实现IDisposable的对象执行操作,然后尝试调用其Dispose方法。它没有这样的方法,因此你无法调用它。
如果数组中的对象实现了Dispose方法,那么您应该调用它们。您还可以将数组条目设置为null,以便该数组没有对象的引用。例如:
for (int i = 0; i < my_array.Length; i++)
{
my_array[i].Dispose(); // Don't do this if the object's don't have Dispose.
my_array[i] = null;
}
数组本身不实现Dispose方法,因此您无法为该数组调用它。反正你根本不需要。数组本身只是一块内存,并不需要处理。