【发布时间】:2011-09-20 14:43:08
【问题描述】:
我有这个 C# 代码,它抛出一个 ArgumentOutOfRangeException,我想知道为什么?
ConcurrentStack<int> intsStack = new ConcurrentStack<int>();
int[] myInts = new int[0];
intsStack.PushRange(myInts);
ArgumentOutOfRangeException 错误的Message 属性:
startIndex 参数必须大于或等于零。
参数名称:startIndex
数组是空的但不是null,我根本没想到会有任何异常,只是堆栈中没有添加任何内容。这是一个合理的例外吗?
【问题讨论】:
-
如果您在致电
PushRange之前MyInts[0] = 0;会发生什么? -
这是否适用于
Stack的不同实现? -
@Yahia:这会给他一个
IndexOutOfRangeException,因为数组的容量为零。
标签: c# concurrency