0

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

如下代码中的你需要处理对象并将它们设置为空吗?

((IDisposable)obj).Dispose();

我有错误:

错误 1 ​​无法将类型 'business.person.clssHeadCustomer[]' 转换为 'System.IDisposable' D:\acc2012\acc2012\WindowsFormsApplication1\hesabdari\frmCustomer.cs 80 14 演示文稿

现在我该怎么办?!

4

2 回答 2

1

在 C# 中,有一种称为 a 的数组类型,List它不需要具有固定长度

List<clssHeadCustomer> myList = new List<clssHeadCustomer>();

您可以从中自由添加和删除项目

myList.Add(obj);
myList.Remove(obj);

您的错误是说您无法将列表转换为,IDisposable因为它(或其基类)没有实现它,因此两种类型之间没有有效的转换,IDisposable 的示例实现将像

class MyClass : IDisposable
于 2013-08-11T16:18:13.873 回答
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 方法,因此您不能为数组调用它。反正你真的不需要。数组本身只是一块内存,并不需要处理。

于 2013-08-11T16:21:41.417 回答