C# 专家们:什么';这代码有什么区别?
我这样问是因为我在使用泛型表单时遇到了一个错误“ArgumentOutOfRange”C# 专家们:什么';这代码有什么区别?,c#,.net,arrays,c#-3.0,generics,C#,.net,Arrays,C# 3.0,Generics,我这样问是因为我在使用泛型表单时遇到了一个错误“ArgumentOutOfRange” List<WaitHandle> arraywaithandles = new List<WaitHandle>(4); 这项工作: for (int i = 0; i < 4; i++) { A[i] = (arrayresultados[i].AsyncWaitHandle); } for(int
List<WaitHandle> arraywaithandles = new List<WaitHandle>(4);
这项工作:
for (int i = 0; i < 4; i++)
{
A[i] = (arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
A[i]=(arrayresultados[i].AsyncWaitHandle);
}
这不起作用:
for (int i = 0; i < 4; i++)
{
arraywaithandles[i] = (arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
arraywaithandles[i]=(arrayresultados[i].AsyncWaitHandle);
}
这是:
new List<WaitHandle>(4);
创建一个包含4个WaitHandles的数组,该数组将在上述行结束时存在。此:
创建一个包含4个WaitHandles的数组,该数组将在上述行结束时存在。是否要尝试此操作:
for (int i = 0; i < 4; i++)
{
arraywaithandles.Add(arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
添加(arrayresultados[i].AsyncWaitHandle);
}
您想尝试以下方法:
for (int i = 0; i < 4; i++)
{
arraywaithandles.Add(arrayresultados[i].AsyncWaitHandle);
}
for(int i=0;i<4;i++)
{
添加(arrayresultados[i].AsyncWaitHandle);
}
试试这个
List<WaitHandle> arraywaithandles =
Enumerable.Repeat<WaitHandle>(null, 4).ToList();
List arraywaithandles=
可枚举的.Repeat(null,4.ToList();
试试这个
List<WaitHandle> arraywaithandles =
Enumerable.Repeat<WaitHandle>(null, 4).ToList();
List arraywaithandles=
可枚举的.Repeat(null,4.ToList();
因此,让我们改变问题:有没有一种方法可以表达一般形式如下:WaitHandle[]a=新的WaitHandle[4];我问这个问题,因为我只能看到capacity属性,属性计数是只读的。这样,我不想为N个元素分离内存,我想创建一个包含N个元素的集合。谢谢。@ludicode:如果您还有其他问题,最好将其作为有关堆栈溢出的另一个问题提问。@ludicode:如果您知道您需要4个WaitHandles,不多也不少,那么只需使用数组即可。如果您想要一个WaitHandle集合,可以在其中添加和删除项,请使用该列表。因此,让我们将问题更改为:是否有一种方法可以将通用形式表示为:WaitHandle[]a=新的WaitHandle[4];我问这个问题,因为我只能看到capacity属性,属性计数是只读的。这样,我不想为N个元素分离内存,我想创建一个包含N个元素的集合。谢谢。@ludicode:如果您还有其他问题,最好将其作为有关堆栈溢出的另一个问题提问。@ludicode:如果您知道您需要4个WaitHandles,不多也不少,那么只需使用数组即可。如果您想要一个WaitHandles集合,可以在其中添加和删除项,请使用该列表。