配置全局对象数组以重用对象

时间:2013-08-11 16:13:35

标签: c# arrays object global-variables

我的表单中有一个全局对象数组。我想多次更改数组长度。所以我需要处理它并以不同的长度新增它。

如下面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演示文稿

现在该怎么办?!

2 个答案:

答案 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方法,因此您无法为该数组调用它。反正你根本不需要。数组本身只是一块内存,并不需要处理。