Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 处置全局对象数组以重用对象_C#_Arrays_Object_Global Variables - Fatal编程技术网

C# 处置全局对象数组以重用对象

C# 处置全局对象数组以重用对象,c#,arrays,object,global-variables,C#,Arrays,Object,Global Variables,我的表单中有一个全局对象数组。我想多次更改数组长度。因此,我需要处理它和新的不同长度 如下代码来自 我有一个错误: 错误1无法将类型“business.person.clssHeadCustomer[]”转换为“System.IDisposable”D:\acc2012\acc2012\WindowsFormsApplication1\hesabdari\frmCustomer.cs 80 14演示文稿 现在我该怎么办 在C#中,有一种数组称为a,它不需要固定长度 List<clssHea

我的表单中有一个全局对象数组。我想多次更改数组长度。因此,我需要处理它和新的不同长度

如下代码来自

我有一个错误:

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

现在我该怎么办

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

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

您的错误是无法将列表强制转换为
IDisposable
,因为它(或它的基类)没有实现它,所以这两种类型之间没有有效的转换,IDisposable的示例实现如下

class MyClass : IDisposable

在您的示例中,之所以会出现此错误,是因为您强制未实现IDisposable的对象像实现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;
}
for(int i=0;i

数组本身没有实现Dispose方法,因此无法为数组调用它。无论如何,你真的不需要这么做。数组本身只是一块内存,实际上不需要处理。

我们对
clssHeadCustomer
列表一无所知,因此不知道它是否实现了
Dispose
。即使cast表明没有使用此类dispose,也不能明确地说不存在dispose方法。我怀疑OP在需要处理数组的其他语言中有一些经验方法return clssHeadCustomer是array。这意味着clssHeadCustomer是数组。那么对于“myList.AddRange(cu.searchName(txtSearch));”我应该怎么做呢?快捷方式是在它的末尾添加一个
ToList()
cu.searchName…ToList()
class MyClass : IDisposable
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;
}